Дело в куках и автоматическом редиректе. Msxml.XmlHttp автоматически их включает, а HttpWebRequest требует явных приседаний.
On Error Resume Next
If winHttp Is Nothing Then
Set winHttp = CreateObject("WinHttp.WinHttpRequest.5.1")
Else
If Not winHttp.Status = 200 Then
Set winHttp = Nothing
End 'or MsgBox "Connection is broken", vbCritical: Exit Function
End If
End If