まず自動で動くうんぬんの前に、式には処理順序があるので、これだと「MAINCNT MOD (15==0)」のように解釈されてしまいます。あと、ANDと&&は意味が違います。
例えば一番上の行の式は(予想ですが)、
IF CHECK==0 && (MAINCNT MOD 15)==0 && (MAINCNT MOD 30)!=0 THEN~
です。
やり方は色々ありますが、ぶつかって話しかけるなら、自分がSP0番とすると、
SP=SPHITSP(0)
IF SP>0 THEN KAIWA$=GET_KAIWA(SP)
みたいにしておいて、
DEF GET_KAIWA (SP)
RESTORE "@KAIWADATA"+STR$(SP)
READ D$
RETURN D$
END
@KAIWADATA1
DATA "1だよ"
@KAIWADATA2
DATA "2だよ"