ABER ja nach Position wird das zu unterschiedlichen Zeitpunkten ausgewertet ... Top/Left hier und Width/Height dort/dann.
Probier da mal bissl rum (hab's jetzt nicht im Kopf), aber einige der Position werden "komplett" vor dem OnShow behandelt und schon kannst du alles im OnShow überschreiben.
Ich habe schon jede erdenkliche Kombination von Position und OnCreate/OnShow/WM_AFTERSHOW/OnActivate durch. Das Resultat ist immer das selbe. Die persistente Position wird korrekt aus der Ini gelesen und Left/Top zugewiesen, doch anschließend "irgendwo" wieder übersteuert.