What you have suspected is correct. Based on default values, different windows will load. I have attached my code for window startup(StartuWindow.cs) and MainWindow(MainWindow.cs).In MainWindow.cs,i will override the default values.
I couldn't trace the problem. The sample you gave works fine.
In my local machine, setup gets installed and when i launch my application, it shows the window based on my default parameters.
In others machine, Setup is getting installed, the problem is when i launch my application, no window is displaying in UI.
I have attached my solution and setup file(.exe of my solution) for your reference.