Warum setzt du denn nicht gleich die Werte des TMyData Objekts in dem alten Knoten,
anstatt einen neuen Knoten zu erstellen, diesem das neue TMyData Objekt zu übergeben und den aten Knoten zu löschen?
Also etwa so:
Delphi-Quellcode:
var
OldNodeData : PMyData;
begin
if Assigned(ANode) then
begin
OldNodeData := VST.GetNodeData(ANode);
if Assigned(OldNodeData) then
begin
OldNodeData^.Field1 := XYZ;
OldNodeData^.Field2 := 123;
end;
end;
end;