ipamjm.sty の以下の部分を
\@tempcntb=\@tempcnta
\divide\@tempcntb by "40
\multiply\@tempcntb by "C0
\advance\@tempcnta by \@tempcntb
\if@ipamjm@uplatex
\advance\@tempcnta by "113030
\selectfont
\char\@tempcnta
\else
\advance\@tempcnta by "3030
\selectfont
\char\jis\@tempcnta
\fi
以下のように修正すると直ると思います。
\selectfont% \@tempcntb が変更される前に \selectfont を実行する
\@tempcntb=\@tempcnta
\divide\@tempcntb by "40
\multiply\@tempcntb by "C0
\advance\@tempcnta by \@tempcntb
\if@ipamjm@uplatex
\advance\@tempcnta by "113030
\char\@tempcnta
\else
\advance\@tempcnta by "3030
\char\jis\@tempcnta
\fi
\kanjishape
の引数の評価が \selectfont
まで遅延されるようになったことが原因だと思います。
\kanjishape{\ifcase\@tempcntb0\or1\or2\or3\or4\or5\or6\or7\or8\or9\or a\or b\or c\or d\or e\or f\fi}%
\selectfont
よりも前に \@tempcntb
が変更されると意図しないフォントが選択されてしまいます。