PROBLEM WITH HIGH INMPEDANCE AND qu(at)rtus ii
'Z' is a defined STD_LOGIC value, but it can't be represented by a registered signal. You didn't mention the actual type of the temporary signal, but a wire signal, that directly drives the IO-pin, usually can forward the 'Z' state. A wire, even if it's passed through the design hierarchies, is nothing but an alias of IO pin, so if you set 'Z' to the wire signal somewhere in the design, you actually operate the pins' three-state driver. But registering the signal won't work.