Statt
Delphi-Quellcode:
for var P in Panels do
P.Align := TAlignLayout.Top;
würd' ich die Panels hier auch entsprechend Deiner Anforderung auflisten.
In der For-Schleife werden sie (vermutlich) in der Erstellungsreihenfolge abgearbeitet und nicht zwingend in der von Dir gewünschten. Was sagt denn der Debugger zu der Abfolge der Panels in der For-Schleife?