Just as a ZPT Element has a clone method, so should documents.
Example of the element's API (within IZptElement interface):
/// <summary>
/// Clone this instance into a new Element instance, which may be manipulated without affecting the original.
/// </summary>
IZptElement Clone();
This needs to be extended to IZptDocument.