The only way I've gotten it to work is by removing the Fault declarations. While the service.download is working I haven't satisfied myself that the wsdl I'm using is really correct. I posted it to a reply to alex73 so if anyone more knowledgeable could take a look it would be greatly appreciated!
I don't think the parsers are failing. I think the Fault object that's being referenced needs to be created in the wsdl or an include. I started to do that, but trying to create a fault against the working system is harder. I ran out of time that day and never got back to it.
Also, I thought that SOAPFault was implicit so I *think* it will work fine without.