It looks to me as if the variable substitution in a TORacleScript differs from the one in SQLPlus. In the TOraclescript the variable seems to be "cleared" after the first use.
Thus
Select EmpName
from Emp
where EmpID = &MyID
Union
Select EmpName
from Old_Emps
where EmpID = &MyID
does not...