Given that the default user agent string libwww-perl/#.## contains a slash, it's unlikely that it's the slash as such. My overwhelming inclination is to say that LibXML (iconv?) is not lying -- it's an encoding conversion problem, and thus it appears that
what you're getting as input depends on the user agent string, such that the web SERVER is delivering different content to you depending on the contents of your user agent string. Perhaps the server recognizes the default string and delivers content accordingly, perhaps it *doesn't* recognize the ones you're setting and goes to some sort of default (if it uses some sort of regex solution, it expects the slash to precede the client's version number, for example, and it doesn't recognize "Mozilla version 5"). The other possibility that suggests itself, which seems pretty remote to me, and is not true of the source on my installation, is that calling agent has side effects (resetting content-accept, e.g.). But as I say, that's not true of my installation and I don't believe it will turn out to be true of yours.
So, check the encoding on the incoming content. That's my main suggestion, and it's probably a good idea anyway because you're dealing with i18n issues here anyway.
If not P, what? Q maybe?