A razão pela qual você está encontrando apenas o primeiro item em cada array é porque você não está alterando o valor de "i". Você precisa envolver os "Finds" em um loop.
Veja abaixo ...
Sub HighLightHeShe()
Dim vFindText As Variant
Dim oRng As Range
Dim i As Long
vFindText = Array("he", "his")
For i = 0 To UBound(vFindText)
Set oRng = ActiveDocument.Range
With oRng.Find
.ClearFormatting
.Replacement.ClearFormatting
Do While .Execute(FindText:=vFindText(i), _
MatchWholeWord:=True, _
Forward:=True, _
Wrap:=wdFindStop) = True
oRng.HighlightColorIndex = wdTurquoise
oRng.Collapse wdCollapseEnd
Loop
End With
Next
vFindText = Array("she", "her")
For i = 0 To UBound(vFindText)
Set oRng = ActiveDocument.Range
With oRng.Find
.ClearFormatting
.Replacement.ClearFormatting
Do While .Execute(FindText:=vFindText(i), _
MatchWholeWord:=True, _
Forward:=True, _
Wrap:=wdFindStop) = True
oRng.HighlightColorIndex = wdPink
oRng.Collapse wdCollapseEnd
Loop
End With
Next
lbl_Exit:
Exit Sub
End Sub