Hi Nick,
You can try to compare the request sent from PI with the request which works when you call the webservice standalone.
From the error you have mentioned, it seems something is wrong in the message structure/content sent from PI.
Thanks,
Sushil.