Hola de nuevo,
He probado la función que me has proporcionado cambiando ->firstChild por ->documentElement y me ha funcionado perfectamente.
Es decir, que me convierte el objeto DOM a array perfectamente, por lo que funcionan bien tanto el serialize como unserialize. Pero aún así me surge otro problema:
¿Cómo vuelvo a convertir ese array al objeto DOM anterior?
Joe, ya lo siento por ser tan preguntón pero es que realmente me estás salvando el cuello!