I came up with a solution. I'll share it here in case anyone else needs this in the future. The simplest way I could come up with was to write a custom macro.
First, I put two bookmarks in the document. One called "start" above the text I want to copy and one called "end" below the text I want to copy.
The code for the macro then is:
Code:
Sub SelectTextBetweenBookmarks()
ActiveDocument.Range( _
ActiveDocument.Bookmarks("start").Range.Start, _
ActiveDocument.Bookmarks("end").Range.Start) _
.Select
Selection.Copy
End Sub
Then I added a field to the document to run that macro.
Code:
{MACROBUTTON SelectTextBetweenBookMarks Click to Copy to Clipboard}
The field shows the "Click to..." text and when the user clicks on it while the form is protected, the text is copied to the clipboard and the formatting is preserved.