well i went back to it, i stripped it right back to basics to ensure the buttons were working and tested it a command at a time and got it working!
It dint like the way i had used the IF and ENDIF commands...
start:

IHOURS=0
IMINUTES=3



HOURSI:
If Butup=0 then
IHOURS=IHOURS+1
endif
IF BUTdwn=0 THEN
IHOURS=IHOURS-1
ENDIF
IF BUTSTART=0 THEN
GOTO MINSI
ENDIF
pause 50
GOSUB TIMESETUP
GOTO HOURSI

MINSI:
PAUSE 5000
MINSI1:
IF BUTUP=0 THEN
IMINUTES=IMINUTES+1
ENDIF
IF BUTDWN=0 THEN
IMINUTES=IMINUTES-1
ENDIF
IF BUTRESET=0 THEN
GOTO HOURSI
ENDIF
IF BUTSTART=0 THEN
GOTO CONTINUE
ENDIF
PAUSE 50
GOSUB TIMESETUP
GOTO MINSI1


timesetup:
pause 50
LCDOUT $FE, 1, "GAME LENGTH"
LCDOut $FE,$C0,DEC2 IHours,":",DEC2 IMinutes,":00.00"
PAUSE 50
REturn

'butup and butdwn


Continue:

LCDOUT $FE, 1, "Settings Saved"
LCDOut $FE,$C0,DEC2 IHours,":",DEC2 IMinutes,":00.00"
pause 6000
goto continue
end
So with that fully working i plonked it back into the other code im working on and now it freezes again doing what the original coding did and getting lost after adding the first hour....
More time to play around tommorow night i guess.