The only way, really, to pick up bookmarks is to query them from a Range. In your case, you need the Range from the Found range backwards. Simplest would simply be to set the Range back to the start of the Document, then pick up the last bookmark. The following code sample, based on your original, illustrates this.
Note that I've changed ThisDocument to ActiveDocument. ThisDocument is the document object in which your VBA code resides. I'm assuming you want the code to run on whichever document is currently being worked on? In that case, ActiveDocument is correct.
Dim wrdThis As Document
Dim strSearch As String
Dim myRange As Range, rngToStart As word.Range
Dim bkm As word.Bookmark
'Dim lngBookMark As Long
'Dim lngHeadingName As Long
'Dim varBookmarks As Variant
'Dim i As Integer
Set wrdThis = ActiveDocument
Set myRange = wrdThis.content
strSearch = "Home"
'Ensure that Execute and Found are performed on the same FIND
.Execute findText:=strSearch, Forward:=True
If .found = True Then
'Always use DUPLICATE to "copy" a Range object!
Set rngToStart = myRange.Duplicate
rngToStart.Start = wrdThis.content.Start
If rngToStart.Bookmarks.Count > 0 Then
Set bkm = rngToStart.Bookmarks(rngToStart.Bookmarks.Count)
MsgBox "Search text found in bookmark " & bkm.Name