テストデータ作って動かしてみたが、
ありえないインデックス値が入ってるような・・・
生成されたコードブックの検証はしたのだろうか

とりあえず、以下について言葉で説明してくれ
・ソース中の配列indexの意味と使われ方
・コードブックに無いベクトルに対しての処理 (ソース中で何をやってるか)
なんとなく、この辺が癌になってる気がする