попробуй отключить оптимизатор.
Так же это может быть особенностью ОС - открытие диалогов с другим Z-order. Т.е. диалоги создаются правильно, но вот распологаются в обраном порядке.
Проверь на таком цикле:
Код:
var
S : String;
begin
S := '';
for i:=0 to 5 do S := S + inttostr(i) + ' ';
showmessage(S);
end;