問題の箇所とは違いますが、
条件分岐がたくさんあって面倒ですね。
もしも、\kana の引数が kanaa や kataa などというように、
必ず接頭辞として4文字のものがくるのなら、
\def\split#1#2#3#4#5\@nil{%
\def\@kind{#1#2#3#4}%
\def\@word{#5}%
}
のようなものを用意して、
\kana#1{%
\split#1\@nil
\edef\@tempa{%
\noexpand\index[\@kind]{\@word}%
}%
\@tempa
}
のような感じで代用できないでしょうか?