When you execute
tee >(some_command)
bash creates a subshell to run some_command. The subshell's stdin is assigned to the reading half of a pipe. bash leaves the name of this pipe on the command line, so that tee will pump its input into the pipe. The subshell's stdout and stderr are left unchanged, so they are still the same as tee's.
So, when you execute
tee >(some_command) | some_other_command
Now, bash first creates a process to run tee, and assigns its stdout to the writing half of a pipe, and another process to run some_other_command, with its stdin assigned to the reading half of the same pipe. Then it creates another process to run some_command, as above, assigning its stdin to the reading half of another pipe, and leaving its stdout and stderr unchanged. However, stdout has already been redirected to some_other_command, and that's what some_command inherits.
In your actual example,
tee >(sed 's/World/Boy/g'|grep Boy) | grep World
we end up with:
                  -->  sed 's/World/Boy/g' -->  grep Boy --
                 /                                         \
input --> tee --<                                           \
                 \                                           \
                  ----------------------------------------------> grep World 
In one of the questions linked in the OP, there is a (non-accepted but correct) answer by F. Hauri, which I've adapted here:
echo Hello World |
((tee /dev/fd/5 | grep World >/dev/fd/4) \
           5>&1 | sed 's/World/Boy/' | grep Boy) 4>&1
It takes a little practice to read bashisms like the above. The important part is that
( commands ) 5>&1
Creates a subshell (( )) and gives that subshell an fd numbered 5, initially copied from stdout (5>&1). Inside the subshell, /dev/fd/5 refers to that fd. Within the subshell, it is possible to redirect stdout, but that will happen after stdout is copied to fd5.