MailMerge - for new pages with identical formatting, one idea could be to play with Headers and/or footers for the information on each page, then use catalog setup for the repeating information. A catalog setups doesn't necessarily mean there's one line/paragraph per "record", you can have multiple lines/paragraphs. There's also the paragraph properties on the "Line and Page Breaks" tab, perhaps in particular the "Keep with next" property (forces the paragraph to be on the same page as the next paragraph).
Moving the cursor to the end of the document, should normally be something like
TheWordOjbect.Selection.EndKey Unit:=wdStory
Record it with the standard shortcut Ctrl+End
but knowing what you've tried, what happened, what didn't etc, makes it easier to troubleshoot.
When I've worked with bookmarks, I've only filled preexisting bookmarks, so I've never experienced what you're describing. One question, though, when you've fetched this section from somewhere, is the info placed at the correct place? If so, to be blunt, does it matter where the bookmarks are?
One thing to look out for, is what happens if you create a new bookmark with a name already existing (deletes the old one), or copy/paste text containing bookmarks with names already existing (I think the existing bookmarks are kept, and only non existing bookmarks occur in the pasted area). Could that be the reason it behaves strange? You may wish to ensure the bookmark names are unique through the whole process. Also, be sure you're saving the correct document. Depending on which method you use of referencing different docs, there can easily be confusement about what you're saving
To the repeating stuff, you could probably create a subroutine, see for instance
http://word.mvps.org/FAQs/MacrosVBA/InsertingTextAtBookmark.htm (though the link relates to doing something else to the bookmark, it illustrates the point), and you can probably build it even more dynamic.
You seem to be talking about both form fields and bookmarks. what is it that you're (re)naming, the bookmarks or the form fields? Where/how to you put the info?
.Bookmarks("MyBookMark").Range.Text = "SomeText"
.FormFields("MyFormField").Result = "SomeText"
I'll usually only use FormFields if the user is going to enter information manually (then toggle protection and all that stuff), but only bookmarks (or Mail Merge) if I'm to create reports.
Another thing I thought about, was using tables. With tables, you can loop the individual cells, and fill information as you wish. Here's one sample found through a quick search
http://groups.google.com/group/comp.databases.ms-access/browse_frm/thread/9f5ff3a933fc353e/
A "kludge", would be to create a template or document with sufficient space/bookmarks, then just delete the unused stuff afterwards.