Is SNPX working to turn on/off DIs and set register values? If so then keep using that, and add a BG Logic program to control UIs through flags.
Then you can use a DI to trigger your start, though BG Logic, to start a main program. Then in your main program, use a select statement and register to call your other programs.