SPCHRによる定義番号変更は、プチコン内部で管理しているメモリ内容を変更するだけなので、ユーザが定義した変数に影響を及ぼしません。
もし、変数が管理番号で、図柄を変更しても管理番号を変更しないときは、
IF SPCHR(変数)==SP番号 THEN ・・・
図柄を変更したときに管理番号も変更するときは、管理番号の変数の内容を明示して変更する必要があります。
たとえば、
SPCHR 変数1,SPの番号
の「変数1」は、管理番号が入っている変数、「SPの番号」が定義番号で、
IF 変数2==SPの番号 THEN SPOFS 変数1・・・
の「変数2」は、管理番号で使っている定義番号を保存している変数だとすると、CPCHRで図柄を変更したとき、変数2に「SPSPの番号」を代入する処理がないと、「変数2==SPの番号」が「偽(0)」になって、SPOFSは実行されません。(分かっているとは思いますが、「思い込み」の確認です。)
「変数」と「SPの番号」が、「SPの定義番号」なのか「SPの管理番号」か文面からよく分かりませんでしたが、全く動かないということでしたら、
IF 変数==SPの番号 THEN SPOFS 管理番号・・・
で、「変数==SPの番号」になっているかと、SPOFSの管理番号が合っているかを確認してみてはどうでしょうか。
これらが、問題無い場合は、「動いているが動いていないように見える」Moh6ANさんのような原因をさぐる必要があります。