So, noch mal kurz vor Feierabend ins Forum geschaut.
Dein Record hat 312 Byte. Die Blöcke in der Datei sind 320 Byte groß.
Wenn ich das richtig in Erinnerung habe, sind Records standardmäßig nicht gepackt. In Turbo-Pascal war das noch anders.
Entweder ist dein Record falsch definiert oder die Speicher-Ausrichtung passt nicht. Ich habe das nicht exakt nachgerechnet, aber ich meine, dass die Ausrichtung zu einer Verschiebung um 10 Byte führen sollte. Das passt dann immer noch nicht zu den 320 Byte.
Lies das doch mal in Blockgrößen (Record of Array [0..319] definieren) zu 320 Byte ein und teste Stückweise, wie es in den geplanten Record passt.
Klassisches Beispiel für einen varianten Record.