in reply to Redirect to STDOUT and file

This post explains pilcrow's solution.

open '>&' creates a duplicate of a system file handle. tie doesn't create a system file handle, just a Perl one, so it can't be duplicated using open '>&'.

However, Perl handles can be duplicated. Simply use the assignment operator.
In general: *DST = *SRC{IO};
In this case: *STDERR = *$TeeErr{IO};

open '>&' is normally preferred because child processes can inherit the resulting handle. However, since IO::Tee doesn't create a real (system) file handle, neither the original nor the copy can be inherited by child processes.