I suppose you could capture the mapping XPath then delete and recreate it, but this could me futile:
Sub ScratchMacro()
'A basic Word macro coded by Greg Maxey
Dim oCC As ContentControl
Dim arrXPath() As String
Dim strXpath As String
Dim lngCC As Long
Dim strText As String
Dim oPart As CustomXMLPart
lngCC = 0
For Each oCC In Selection.Range.ContentControls
ReDim Preserve arrXPath(lngCC)
lngCC = lngCC + 1
With oCC.XMLMapping
arrXPath(UBound(arrXPath)) = .XPath
End With
Next
Selection.Paste
lngCC = 0
For Each oCC In Selection.Range.ContentControls
strText = oCC.Range.Text
Set oPart = ActiveDocument.CustomXMLParts.SelectByID(oCC.XMLMapping.CustomXMLPart.ID)
With oCC.XMLMapping
.Delete
.SetMapping arrXPath(lngCC), , oPart
End With
lngCC = lngCC + 1
oCC.Range.Text = strText
Next
lbl_Exit:
Exit Sub
End Sub