Hi,
excuse me, I don't know if I get you right.
Well do you want to merge some trees (lets call them t1, t2, ... tn) to a new one (tNew). But although tNew contains the nodes of t1, t2, ..., tn you want independed changes (so changing t1 does not correspond in a change of nodes in tNew)?
If so, you can't just use references (light copies by := ) but you have to make deep copies (by creating new nodes with given values).
Well of course just if I get what your problem is
Regards Der Unwissende