It want stay because you are using CLS every time your program loops. Doesn't DBC have sync commands? If not you could do something like this...
SET DISPLAY MODE 800,600,16
CLS RGB(255,255,255)
INK RGB(0,0,0), RGB(255,255,255)
SET TEXT FONT "Ravie"
SET TEXT SIZE 36
TEXT 75,100, "Start 0's and X's? (Press Any Key to Continue)"
TopLeftCircle = 0
MidLeftCircle = 0
BotLeftCircle = 0
TopMidCircle = 0
MidMidCircle = 0
BotMidCircle = 0
TopRightCircle = 0
MidRightCircle = 0
BotRightCircle = 0
REPEAT
I$=Inkey$()
UNTIL I$<>""
DO
Start1:
CLS RGB(10,10,10)
INK RGB(0,0,0),0
BOX 250,150,350,250
BOX 350,150,450,250
BOX 450,150,550,250
BOX 250,250,350,350
BOX 350,250,450,350
BOX 450,250,550,350
BOX 250,350,350,450
BOX 350,350,450,450
BOX 450,350,550,450
INK RGB(255,255,255), RGB(10,10,10)
LINE 250,250,550,250
LINE 250,350,550,350
LINE 350,150,350,450
LINE 450,150,450,450
INK RGB(255,255,255),0
BOX 50,250,150,350
BOX 650,250,750,350
BOX 250,50,550,75
INK RGB(255,0,0),0
LINE 250,50,550,50
LINE 250,75,550,75
LINE 250,50,250,75
LINE 550,50,550,75
LINE 50,250,150,250
LINE 50,350,150,350
LINE 50,250,50,350
LINE 150,250,150,350
LINE 650,250,750,250
LINE 650,350,750,350
LINE 650,250,650,350
LINE 750,250,750,350
LINE 250,150,550,150
LINE 250,450,550,450
LINE 550,150,550,450
LINE 250,150,250,450
LINE 5,5,795,5 ;rem across line
LINE 5,595,795,595 ;rem across line
LINE 5,5,5,595 ;rem down line
LINE 795,5,795,595 ;rem down line
INK RGB(255,255,255),0
SET TEXT OPAQUE
SET TEXT SIZE 18
TEXT 310,53, "Naughts's and Crosses's"
TEXT 60,290, "Start Again"
TEXT 685,290, "Quit"
IF MouseX()>50 and MouseY()>250 and MouseX()<150 and MouseY()<350
If MouseClick()=1
TopLeftCircle = 0
MidLeftCircle = 0
BotLeftCircle = 0
TopMidCircle = 0
MidMidCircle = 0
BotMidCircle = 0
TopRightCircle = 0
MidRightCircle = 0
BotRightCircle = 0
GOTO Start1
Else
EndIf
ELSE
ENDIF
IF MouseX()>650 and MouseY()>250 and MouseX()<750 and MouseY()<350
If MouseClick()=1
END
Else
EndIf
ELSE
ENDIF
IF MouseX()>250 and MouseY()>150 and MouseX()<350 and MouseY()<250
If MouseClick()=1
TopLeftCircle = 1
Else
EndIf
ELSE
ENDIF
IF MouseX()>350 and MouseY()>150 and MouseX()<450 and MouseY()<250
If MouseClick()=1
MidLeftCircle = 1
Else
EndIf
ELSE
ENDIF
IF MouseX()>450 and MouseY()>150 and MouseX()<550 and MouseY()<250
If MouseClick()=1
BotLeftCircle = 1
Else
EndIf
ELSE
ENDIF
IF MouseX()>250 and MouseY()>250 and MouseX()<350 and MouseY()<350
If MouseClick()=1
TopMidCircle = 1
Else
EndIf
ELSE
ENDIF
IF MouseX()>350 and MouseY()>250 and MouseX()<450 and MouseY()<350
If MouseClick()=1
MidMidCircle = 1
Else
EndIf
ELSE
ENDIF
IF MouseX()>450 and MouseY()>250 and MouseX()<550 and MouseY()<350
If MouseClick()=1
BotMidCircle = 1
Else
EndIf
ELSE
ENDIF
IF MouseX()>250 and MouseY()>350 and MouseX()<350 and MouseY()<450
If MouseClick()=1
TopRightCircle = 1
Else
EndIf
ELSE
ENDIF
IF MouseX()>350 and MouseY()>350 and MouseX()<450 and MouseY()<450
If MouseClick()=1
MidRightCircle = 1
Else
EndIf
ELSE
ENDIF
IF MouseX()>450 and MouseY()>350 and MouseX()<550 and MouseY()<450
If MouseClick()=1
BotRightCircle = 1
Else
EndIf
ELSE
ENDIF
If TopLeftCircle = 1
CIRCLE 300,200,40
endif
If MidLeftCircle = 1
CIRCLE 400,200,40
endif
If BotLeftCircle = 1
CIRCLE 500,200,40
endif
If TopMidCircle = 1
CIRCLE 300,300,40
endif
If MidMidCircle = 1
CIRCLE 400,300,40
endif
If BotMidCircle = 1
CIRCLE 500,300,40
endif
If TopRightCircle = 1
CIRCLE 300,400,40
endif
If MidRightCircle = 1
CIRCLE 400,400,40
endif
If BotRightCircle = 1
CIRCLE 500,400,40
endif
LOOP