別にGOSUBを使っちゃいけないというわけじゃないですよ。
ただGOSUBを使った場合は必ずRETURNで戻るような構成にしないとエラーになるので、その辺を気をつけてプログラムの流れを見直して修正するような感じにしないといけないって感じですね。
たとえばGOSUBの先で他の場所に飛びたいケースなどでもそこで飛んでしまうとスタックオーバーフローになるので変数などでフラグだけ立てて戻ってきてから処理するような感じに変える必要があります。
プログラムの流れを理解して動きを理解するのは大事なので、自分のプログラムを一度見直してみると良いと思います。