А вообще можете сделать что-то типа:
X++:
struct2.add("struct1",struct1.tostring());
а потом при распаковке получать результат таким образом:
struct3=Struct::create(packedstruct2);
strStruct1 = struct3.value(struct3.fieldname(0)); // str strStruct1
Вот, ну а из этой строки возобновить исходную структуру или просто выцепить данные - не сложно.
Хотя всё-равно геморный случай))).