Hmm. So you are running the menu code, in which main() runs (hopefully--you might try putting a beep(); in there just to check)... and even when main runs all the panels are SHOWing on top of each other?
From what you posted I'm having a hard time figuring out why. The only things I see are that in score_t and score_gameover you wrote "flags |= " instead of just "flags = "... but I don't know if or why that would cause this behavior.
I also wonder why you set all the panels to SHOW in the definitions when you are just immediately switching them off in main(). You might just NOT set them to SHOW and let everything then take care of itself.
I'll keep working to help you as I have time today. I don't really know why the problem is happening though.