Ну вообще если нужен клон то просто делаете копию и вставляете ее. А вот если это должен быть один объект... распишите лучше зачем вам такое поведение, вполне возможно это ошибка в архитектуре приложения.
Хорошо опишу.
Данное дерево представляет собой список задач, которые выполняются удаленно. Каждая задача может зависеть от любой другой. Именно эту зависимость я и хочу изобразить.
Т.е. есть задача З1, З2, З3, З4. Задача З2 и З3 может зависеть от З1. Эти задачи не начнут выполняться до тех пор пока не выполнится З1. Соответственно чтобы пользователь понимал что происходит, эту зависимость я изображаю в виде дерева. Копировать можно, но это ресурсоемко, если можно так сказать. Задач может быть несколько тысяч, и все они могут зависеть от какой-то одной задачи, ну не копировать же мне их в самом-то деле.
У меня есть мысли по этому поводу. Сделать класс, который будет содержать указатель на объект и затем создавать элементы относительно этого класса. В нем можно сделать указатель на родителя, на детей. Но все это не продумано и сыровато, как мне кажется. Я подумал что наверняка задача распространенная и есть какие-то стандартные средства.