This line that replaces the Show function for each of those objects also taints every one of them. Anytime :Show() is called for one of those objects from signed code, the execution path will get tainted and break if it hits a protected function call afterwards. This happens because the
noop function is not from signed code.
A better approach to forcing them to stay hidden would be:
Lua Code:
hooksecurefunc(obj, 'Show', obj.Hide)
Instead of replacing the Show function, this line will make sure it immediately calls :Hide() on the object any time :Show() is called on it.