mit "file of Type" legt man fest das der Inhalt einer Datei komplett mit Type gefüllt ist. Dabei ist Type immer gleich groß. Man kann also fix mal zum 5ten Eintrag in der Datei gehen weil man einfach die Position ändert. Hast du jedoch ein dynamisches Array oder dergleichen, so ist das erstmal nicht mehr als ein Pointer der auf dynamich reservierten Speicher zeigt. Delphi ist da wohl schon so schlau um zu wissen das es keinen Sinn macht diesen Pointer zu speichern weil beim nächsten Programmstart der wo ganz anders hinzeigen könnte. Und um die Daten direkt in die Datei zu schreiben ist wohl der Ansatz der konstanten Datengröße nicht gegeben.
Das sind zumindest meine Vermutungen warum das, was du vor hast nicht so zu machen geht.