Die Prozedur erhält eine Referenz auf die Objektliste.
Sie benutzt also die gleiche Liste.
Eine Kopie der Liste könntest Du erzeugen, wenn Du eine neue Listeninstanz erzeugst und die Einträge kopierst.
Wenn die Einträge Objekte sind, kopierst Du aber auch nur wieder Referenzen auf die Listeneinträge.
Du kannst das analog
Panel2 := Panel1
sehen.
Hier wird der Variablen Panel2 ja auch nur eine andere Referenz (ein anderer Pointer) zugewiesen.
PS: Sehe gerade, dass Du es gelöst hast.
Aber Dein "Array of ObjectList" kann ich nicht ganz nachvollziehen.
Egal, wenn es läuft, läuft es
Vielleicht kannst Du es ja später nochmal anders ordnen.