Ehrlich gesagt - ich weiß es nicht

Ne, also mit dem Codeausschnitt wollte ich dir aufzeigen, dass du die Objekte sehr wohl freigibst

Du hast halt zwei Zeiger auf das selbe Objekt. Einmal holst du dir den Zeiger über
GetNodeData
und einmal residiert der Zeiger in der
TObjectList
. Dein
Free
bezieht sich ja aber trotzdem auf das konkrete Objekt.
Delphi-Quellcode:
Data := Node.GetData<TVSTData>;
...
Data.Free;
macht das Gleiche wie
aVSTDataClasses[aVSTDataClasses.IndexOf(Data)].Free