Mão única
SELECT *,1 as SortOrder FROM table1
UNION
SELECT *,2 FROM table2
UNION
SELECT *,3 FROM table3
UNION
SELECT *,4 FROM table4
order by SortOrder
o que acontece é que você está usando UNION, o sql server então torna o conjunto de resultados distinto, para isso ele precisa ordenar as tabelas
O
UNION ALL
faça a diferença?