Wenn dein Programm mehrmals gestartet werden kann, dann kannst du es ja einfach erneut starten und als Parameter angeben, dass dein Programm eine bestimmte temporäre Konfigurationsdatei nutzen soll, die du vorher erstellst.
Die neue Instanz liest das dann aus und fertig.
Kann dein Programm nur einmal gleichzeitig gestartet werden, könntest du solange die Exe existiert in eine Schleife gehen und versuchen, die Datei umzubenennen. Wenn das dann geklappt hat, ist die Datei nicht mehr gesperrt, also läuft das Programm nicht mehr. Dann kannst du die Exe zurückumbenennen und mit deinen Parametern starten.
Ansonsten würde ich eine kleine Kommandozeilen-Exe vorschlagen, die du per Resource oder so in die Exe einbinden kannst und dann vor dem Start entpackst. Die kann dann warten, bis dein Programm geschlossen ist und wird dann von der (vom Kommandozeilen-Tool) neu gestarteten Instanz gelöscht.