Und der Inhalt? Strings werden nicht korrekt gespeichert, die in dem Record enthaltenen varianten Arrays sowieso nicht.
Mach es so, wie Furtbichler vorgeschlagen hat. Wahlweise
XML, aber das wäre mehr Arbeit, aber dafür besser, wenn Daten hinzukommen oder wegfallen.
Beim normalen (binären) Serialisieren würde ich dem Stream eine Versionsnummer spendieren, um etwaige Änderungen in der Datenreihenfolge oder -Aufkommen über die Versionsnummer zu begegnen.