Perhaps try this:

Sub ConvertLatinToComplex()
    Dim rng As Range
    Dim i As Long
    Dim charCode As Integer
    Set rng = ActiveDocument.Content
    ' Loop through each character in the document
    For i = rng.Characters.Count To 1 Step -1 
        ' Loop backwards to avoid index issues after changes
        charCode = AscW(rng.Characters(i).Text)
        ' Check if the character is within the Latin Unicode range (Basic Latin and Latin-1 Supplement)
        If (charCode >= 32 And charCode <= 255) Then 
            ' Basic Latin and Latin-1 Supplement
            ' Check if the character is not a control character.
            If (charCode >= 32) Then
                ' Convert character to complex script. This forces Word to re-evaluate the character
                ' and treat it as complex if applicable.
                rng.Characters(i).Text = ChrW(charCode) & ChrW(8206) 
                ' Add Left-to-Right Mark
                rng.Characters(i).Characters(1).Delete 
                ' Delete the added Left-to-Right Mark
            End If
        End If
    Next i
    Set rng = Nothing
End Sub