Your code is shot Tim.

Your main loop is fine but... every second you GOTO (not GOSUB) to your endsecond section, which you have terminated with a RETURN.

What's your worry with the PAUSE?

A better way of keeping time would be...

Pause 999
PauseUS 1000

That way, when you've built your program and you time it, and discover you're losing five minutes a day, you'll have a 1uS step per loop adjustment (giving adjustment steps of 86.4mS per day), rather than 1mS (giving adjustment steps of 86.4 seconds per day).