Scrivendo la If subito dopo la Navigate tu pensi che venga eseguita solo quando la Navigate è completa, ma non è così.

Una volta eseguita la Navigate, anche se la pagina non è stata completamente caricata, viene eseguita la If.

Devi fare in modo di "attendere" (con un ciclo e una DoEvents) che la variabile diventi True (ovviamente dovrai gestire anche gli errori e/o i timeout).

Fra l'altro, non capisco perché utilizzi il WebBrowser ... se devi solamente gestire quell'informazione, ti bastano le due righe

codice:
Dim wCli As System.Net.WebClient = New System.Net.WebClient()
Dim codice As String = wCli.DownloadString("http://mybeat.it/newcode.php")
e non hai neanche i problemi derivanti dall'esecuzione asincrona.