I assume that somewhere, something is in an encoding, and something tries to decode that in the wrong way. Maybe the data is marked as UTF-8, but sent as "something else". Can you take mod_perl/Apache::Registry out of the picture, or is it not in the picture at all?
As a second stab, I would try to look at the data going back and forth either with Wireshark or with SOAP::Trace to get a better picture of what might happen when.
Also see this (somewhat disheartening) part in the "Troubleshooting" section of SOAP::Lite:
Using SOAP::Lite (or XML::Parser::Expat) in combination with mod_perl causes random segmentation faults in httpd processes.