Ciao a tutti.
Da quello che sono riuscito a capire documentandomi il problema derivava proprio da quello che pensavo. Il controllo utente tentava di creare il bottone quando il form era ancora in fase di Run Time e quindi generava un errore.
Per ora ho gestito l'errore ed ovviamente il problema è risolto ma non nella maniera migliore

codice:
Private Sub Draw3DEffect()
On Error GoTo retry
retry:
    If Not Ambient.UserMode Then
        If m_ButtonStyle = gbWinXP Then
                DrawWinXPButton 0
        ElseIf m_ButtonStyle = gbOfficeXP Then
                XPAdjustColorScheme
        Else
            If m_BEVEL < 2 Then
                DRAWRECT hdc, 0, 0, ScaleWidth, ScaleHeight, &H80000010
                DRAWRECT hdc, 0, 0, ScaleWidth + 1, ScaleHeight + 1, &H80000014
            Else
                RunXTRA3D COLOR_UniColor(UserControl.BackColor), m_BEVEL, BEVELDEPTH
            End If
        End If
    Exit Sub
    End If
In questo modo se il controllo riceve un errore ritenta la creazione del comando e ovviamente riesce perché il form è stato correttamente caricato. Nel mentre cercherò di migliorare il codice del controllo per risolvere definitivamente il problema.
Oltretutto questo controllo XpBs.ctl è introvabile in rete sparito dalla circolazione !

Ciao a tutti e grazie mille.