@egsuh,
welcome to the VST hell :-) 3+ Years of development by Mike Lischke alone, 2600 pages of pdf documentation, 32000+ lines of code, working with pointers, giving almost unlimited flexibility which leaves almost unlimited opportunities for hard to find glitches.
Aside from this minor obstacles VST is a great and very versatile component :-) It took me about 3 weeks to get along with it, and I am still not quite done.
Regarding your suggestion: did you test it using my little demo project linked above? I did a quick test, and it won't compile, Error "Got TPayload, expected pointer".
IMHO, like Remy and others have outlined, rec is a local copy of the enumerated record, not a pointer, and adding its address to the tree will later, when you try to access the record via the stored address, create memory havoc, since the local copy of rec is long gone by then. My test program behaved just like that, so I assume that yours won't work.
Greetings from rainy Bavaria,
Armin.