Если многоуровневая вложенность, может тогда попробовать вручную это делать в конструкторе копирования:
Код
Type UDT
Dim As integer i , j
declare constructor(i as integer , j as Integer)
declare constructor(Byref As UDT)
End Type
constructor UDT(i as integer , j as Integer)
this.i = i
this.j = j
End Constructor
' здесь вручную копируем все данные из передаваемого объекта
' и при необходимости выделяем память
constructor UDT(Byref r As UDT)
i = r.i
J = r.j
End Constructor
Dim As UDT ptr a = new UDT(10 , 20)
Dim As UDT ptr b = new UDT (*a)
a->i = 66
a->j = 22
'
Print a->i, b->i , a->j , b->j
Sleep