Il codice è corretto.

Quello che ti manca è poter distinguere il GroupBox selezionato, cosa che devi fare nell'evento MouseEnter, al fine di decidere l'azione da intraprendere.
Prima devi però valorizzare una proprietà (o crearne una apposita) che ti consenta di distinguere ogni GroupBox.
A titolo di esempio, potresti usare la proprietà Tag per memorizzare il numero di GroupBox creato. Nel ciclo ti basta aggiungere la seguente assegnazione:

codice:
    gb1.Tag = nrc.ToString
Per verifica, sempre a titolo di esempio, aggiungi un Label1 al tuo form, e vedrai che quando posizioni il mouse su un GroupBox qualsiasi ti mostra l'indice. Ecco come:
codice:
    Private Sub APPGB_Mouse_Enter(sender As System.Object, e As System.EventArgs)
        Dim gb As GroupBox = CType(sender, GroupBox)
        Label1.Text = "GroupBox selezionato: " + gb.Tag
    End Sub
Io ti ho fatto l'esempio con la proprietà Tag, ma ovviamente tu deciderai di utilizzare l'informazione che più è consona alle tue esigenze.