@Kha
Du hast recht, ist nicht der orginale Code. Ich habe den Konstruktor etwas gekürzt, um nicht die ganzen nebensächlichen Funtkionsaufrufe drin zu haben. Der Übersichtlichkeit wegen. Die Zeile hatte ich versehentlich mitgelöscht und händisch (falsch) nachgetragen

gutes Auge...
Die Klassen enthalten noch ziemlich viel Kram, der nicht serialisiert werden muss/soll. Deshalb ist ISerializable implementiert. Das ganze ist Teil eines Simulationstools und die Klassen bestanden schon. Ich bin jetzt für einige Erweiterungen zuständig (z.B. ein Tool zum Konfigurieren, einlesen etc.).
Ich gehe mal davon aus, dass die Collection verwendet wurde, um die ganzen Member (Add, Remove, IEnumerable-Impl. etc) ohne explizite Implementierung nutzen zu können(?). Bei einer Komposition müsste man das selbst reinbringen, was arbeitet bedeutet

. Außerdem weiß ich nicht, ob die Untereinheiten außerhalb nutzbar sein müssen. Da muss ich erst abklären. Dann könnte ich ja eine Komposition daraus machen.
Das Problem scheint daran zu liegen, das FPL selbst wieder ISerializable implementiert und der BinSerializer da nicht iterativ durch geht. Beim Debuggen ist mir aufgefallen, dass der IS-Konstruktor für FPL zwar aufgerufen wird, aber erst nach dem der Konstruktor für das übergeordnete TInfo schon durchgelaufen ist. Die Daten stehen also auch in dem Stream drin, sie werden nur "zu spät" deserialisiert und wer weiß wo hingeschrieben.
Aber erstmal vielen Dank für die Antwort