I might need to see more than the do loop to help you clean it up a bit. But it's looking like you're really separating things out well. Couple of comments before I answer your question (of course, you can just skip to the end too, grin).

1. Open_File is a subroutine? Why not make it a function which returns the document it opens? Then you can...
set oDocNew = Open_File(myOutFile, "MyOutFile", "", SrcDir)

2. It looks to me like you would benefit from using the Optional Parameter (no reason to pass in "" as an argument into a proc you've developed)

3. FindMyActivity2... I'm a little confused by your parameters there... why are you passing a range, and what looks to be the start and the end of that range? I assume it's because you're only *really* passing in the activedocument.content range... and then returning the rngActivity as a return value... but you don't need to return start and end-- they come along as properties of your rngActivity.

4. This is somewhat of a preference thing-- but putting Dims in the middle of your routines can make it harder to troubleshoot later. The good news about this comment is that once we're getting into stylistic type stuff, you know you're getting close on the actual coding.

5. Now, to your main question: the reason you're getting the wrong result is because that's exactly what you've told it to do. Remember, ranges are live addresses to something which is already in the document. So when you do the following:
rngScrap.select
rngScrap.Cut
... what is left of rngScrap?

The same thing that is left when you select 3 paragraphs and cut them... an insertion point. So when you later do this:
rngDocNew.FormattedText = rngScrap.Formatted text

You've forgotten all about the stuff you had in your clipboard.

rngDocNew.Paste would work.

However, I do take exception to your naming convention here... you don't want to call it rngDocNew... you want to call it rngInsertHere (or something similar).

I make that point because, even without being able to see the rest of your code, your naming convention was pretty much good enough for me to get an idea of what was going on-- which is fantastic.

One other point: You do not need to .select a range to work with it... but it is helpful when you're stepping through your code to type rngScrap.Select in the immediate window at any given point to see what you're actually working with. However, you can probably get rid of every line of code in which you use .Select (and you should see if you can get rid of every line of code which uses ActiveDocument, and instead try to pass the document object around).

Looking good, Ron. I would love to see your code project at the end... I might be able to do a quick sweep through and give you some last coding style pointers (without slowing down the actual need to get the project out the door).

- Jason