Estuve haciendo algunas pruebas con DOM y si bien se puede "copiar" nodos (con cloneNode()) , la "copia" no hereda los eventos

.
Si se puede con DOM ,es "mover" nodos y que permanezcan los eventos (pero no se si esto es suficiente para lo que pretendes).
Y otra cosa es copiar el nodo y que la copia herede los eventos, pero se los quite al original(que tampoco se si te sirve

)
también probé cambiar la forma de asignarle el evento dinámicamente para luego aplicarle lo antes mencionado, pero tampoco tuve éxito.
y por último lo que seguramente resultaría es hacer un bucle copiando nodo por nodo y sus atributos( pero si son muchos nodos sería bastante tedioso)
Hasta ahora esto es lo único en lo que te puedo ayudar(poco) . (tal vez algun gurú de por aquí nos de alguna solucion.)
saludos