Questa si che è bella!
Ho provato a vedere i messaggi:
codice:
    Protected Overrides Sub WndProc(ByRef msg As Message)
        Console.WriteLine(msg)
        MyBase.WndProc(msg)
    End Sub
e Alt scrive due serie alternate di messaggi, mentre Control sempre la stessa serie.
Forse perchè Alt attiva/disattiva i menù della form?
Per mettere una "pezza" potresti aggiungere delle condizioni al codice sopra in modo da gestire i due "comportamenti" del tasto Alt.
Ciao