In the general case, that's not a simple thing to do, because there could be a variety of structures between your two markers which demand special handling (think images, footnotes, sectPr elements, bookmarks etc). Regarding that general case, see my blog post on MergeDocx.
However, if you can make some simplifying assumptions, then it becomes easier.
First, assume your markers are block level elements.
Second, assume your document is just formatted text and tables.
Then you can just perform operations on the list of block level content:
MainDocumentPart documentPart = wordMLPackage.getMainDocumentPart();
List<Object> blocks = documentPart.getContent();
There is XmlUtils.deepCopy to clone objects as necessary.
For each structure which contravenes assumption 2, you'll need specific handling. If you have control over your input documents, you'll be able to manage this.
As an alternative to marker #1 and #2, which is similar to using bookmarks, consider using a block level content control. This avoids brittle point tags; it is nicer from an XML point of view, and offer advantages in the Word user interface (from an authoring point of view).