By looking on the sourcecode of the GuiFlatButton udf, i noticed a function which deletes the Buttons created by it.
Then i had the idea that, maybe you should delete the buttons, before using GuiDelete, and, it looks like it fixed the problem:
Insert/replace this into example 1, and the example #2 will show the color button.
Case $P2_Shower
GuiFlatButton_Delete($mybutton1)
GuiFlatButton_Delete($mybutton2)
GuiFlatButton_Delete($P2_Shower)
GUIDelete()
Example2()
ExitLoop