difficile fare un analisi non sapendo nulla del tuo programma, quindi è difficile dire se il "modello form padre MDI" va bene nel tuo caso...
come prima cosa credo sia fondamentale capire lo scopo del programma, poi bisogrerebbe capire le peculiarità che deve avere ecc.

se hai voglia, prova a spiegare meglio il tuo programma, magari a livello concettuale, fornendo tipi, membri, derivazioni, astrazioni, e sopratutto motivazioni.
se poi hai creato qualche diagramma è sempre utile!

comunque, se può esserti utile (da documentazione msdn) :

"I delegati sono simili ai puntatori a funzione del linguaggio C o C++.Essi consentono di incapsulare un riferimento a un metodo in un oggetto delegato.L'oggetto delegato può quindi essere passato al codice, che a sua volta chiama il metodo a cui viene fatto riferimento, anche se il metodo da richiamare risulta sconosciuto in fase di compilazione. A differenza dei puntatori a funzione in C o C++, i delegati sono orientati a oggetti, indipendenti dai tipi e offrono una maggiore sicurezza."