I'm sure there will be a more elegant way to do this but this is my first attempt
Code:
Sub DemoReplaceBookmark()
Dim aRng As Range, aField As Field
Set aRng = ActiveDocument.Bookmarks("aaa").Range
Set aField = ActiveDocument.Fields.Add(Range:=aRng, Text:="DocProperty Title")
aRng.InsertBefore "text in front"
aRng.End = aField.Result.End
aRng.InsertAfter "text at end"
'aRng.Select
ActiveDocument.Bookmarks.Add Name:="aaa", Range:=aRng
End Sub