Ho fatto 2 test cercando di capire un passaggio di ciò che mi hai detto.

1)
Avvio il mio applicativo, lui avvia firefox, lo intrappola e tutti felici e contenti.
Ne avvio un altro, lui avvia firefox e non lo intrappola.

2)
Dopo aver chiuso tutto, avvio firefox ( non tramite il mio applicativo )
Avvio il mio applicativo, lui avvia firefox e non lo intrappola.

Quindi, se ho capito bene ciò che mi hai detto, anche se ho creato un nuovo processo lui si riferisce comunque, in qualche, a quello già avviato facendomi fallire nell'EnumWindows e quindi nella SetParent, giusto?