This script makes no sense.
First you check sprite 14/15/16 if visible and if so you set "Timeup" and jump to frame 32.
In case of any of the 3 sprites is invisible you change back to "Lunch...." immediatly.
"Time up" will only be functional when Sprite 14 and 15 and 16 are visible.
Also the value of THE TIMER is very low, i think it will always be higher than 350.
The problem is that all the "if" statements that are True will execute and you will only see the effect of the last one in the sequence that is true. So if the code go(32) is executed and then later go(31) is executed then you will only see the effects of the go(31) statement.
Using a "case" statement for the timer check will fix the problem. Also a lot of your code is redundant. It will be easier to understand if you remove the redundancies. Here is an untested rewrite of what you posted.
case true of
(the timer >= 360):
if sprite(16).visible = 1 then _movie.delay(20*60)
if sprite(16).visible = 1 OR sprite(15).visible = 1 then
member ("tellIt").text = "TIME UP"
(the timer > 350):
if sprite(14).visible = 0 OR sprite(15).visible = 0 OR sprite(16).visible = 0 then
member ("endIt").text = "LUNCH IS FOR THE BIRDS"
member ("tellIt").text = "TIME FLIES"
Thank you. I gave up on having a timer because I was having such a problem.