Hm, ein etwas 'fauler' Ansatz: wenn du die Daten in einem TTreeView hast, dann verwende doch einfach die Funktionen die TTreeView mitbringt.
Delphi-Quellcode:
procedure LoadFromFile(const FileName: string);
procedure LoadFromStream(Stream: TStream);
procedure SaveToFile(const FileName: string);
procedure SaveToStream(Stream: TStream);