>>958
UTF-8でやってみました。
以降Jcodeにてeucをutf8に変換したものとして話をさせていただきます。

utf-8にしても、同じエラーが出るには変わりなかったので、
エラーの出る部分を特定しようとして、ひとつ気がつきました。

*文字の種類によってエラーがでるのではなく、文字数によってエラーが出る。*

日本語だけで記述された文の場合、文字が10個続くと必ずエラーが出ます。
9文字までならエラーになりません。

アルファベット(半角文字)で始まる文の場合、
アルファベットが1つ,2つの時は同じように日本語10文字で同じエラーになります。
アルファベットが3つあると、日本語16文字で同じエラーになります。
アルファベットが4つあると、日本語18文字で同じエラーになります。
アルファベットが5つあると、日本語20文字で同じエラーになります。
なんなんでしょう、これ。

ちなみにエラーの出るXML::Parser.pmの346行のコードは、
$text =~ s/([\x80-\xff])/sprintf "#x%X;", ord $1/eg;
だそうです。