The way you have it now, the ELSE statement is completely bypassing the sub events, so it's working like this:
-If global variable "Menu State" is "Main"
+ Do nothing
-Else
+ Set global variable "Menu State" to "Main"
So you are always setting "Menu State" to "Main".