> Shift_JIS部分だけquotemetaするコードくらいなら書きますよ。

とか言うほどの事じゃなかった。むしろテストの方が大変だった。
必要な作業だったのかどうか謎だけど一応上げておきます。
perl5.00503でテスト。

(票表十){2}

とか問題ありそうなShift_JIS + 正規表現交じりでやってみたけどOKでした。

foreach my $NG_word_ref (@FOX_Ro54){
  my $NG_word = $NG_word_ref->[0]; # エスケープしたままじゃ他で使えないのでコピー
    next unless $NG_word; # 空文字列ならスキップ
  $NG_word =~ s/((?:[\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC])+)/quotemeta($1)/geo;
  if (my $matched = eval{$In_Strings =~ m<$NG_word>}) { return $NG_word_ref } # 合致したらリファレンスを返す。 
  # 不正 NG ワードがあったり引っかからなければスキップ 
}

○チェック文字列1 - (票表十){2}
○チェック文字列2 -  十予約表
○In_Strings - ああ票表十票表十予約表いい

■裸の場合。
> /([\){2}/: unmatched [] in regexp at ./check.pl line 22.
> /\驅/: trailing \ in regexp at ./check.pl line 22.

■正規表現を噛ませた場合
> found.
> found.