Mi intrometto. Secondo la mia esperienza con Windows Forms, non è una grandissima idea quella di rendere astratto InitializeComponents. Hai altri modi per intervenire. Il designer si incavola perchè ovviamente da reflection deve invocare il metodo InitComponents e per farlo ha bisogno di una instanza della classe.
Secondo me puoi provare ad implementare l'interfaccia ISupportInitialize. In questo modo tutte le volte che il tuo UC viene utilizzato ricevi delle notifiche relative all'ingresso del metodo InitializeComponents del parent ed alla sua uscita e puoi fare il lavoro che ti serve.
Se quello che vuoi cambiare è solo la veste grafica allora la strada migliore è fare degli "Extenders" da richiamare al momento del Paint o del PaintBackground.
Se preferisci una soluzione meno invasiva ed utilizzabile anche senza modificare la catena di ereditarietà del controllo di destinazione, allora puoi utilizzare un Extender Provider. Sicuramente non è una strada semplice ma è efficace.
Come vedi le soluzioni per modificare un UC sono molte, ce ne sono altre che non ti ho elencato. La scelta ovviamente spetta a te ma personalmente eviterei la customizzazione del metodo InitializeComponents diettamente, ma cercherei una strada che renda le mie customizzazioni grafiche più compatibili con il designer.
Spero di esserti stato di aiuto
Ciao