Intanto fai una cosa semplice. Rendi il 2° form il principale e quello dove l'utente effettua le sue scelte un normale form secondario.
All'avvio del programma, apri il form delle scelte rendendo invisibile il main. Quando l'utente chiude questo, rirendi visibile il main.
Se poi questo post si riallaccia a quell'altro in cui chiedevi come avviare un programma passandogli dei valori, allora hai risolto anche quel problema impostando delle variabili globali.
Infine, puoi aprire quanti form indipendenti vuoi, basta che li fai apparire con NomeForm.Show invece che .ShowModal così non sono legati al Main nella loro "vita".