Feel free to ignore this; I'm just writing it down so that a year from now I'll read it and go, "Oh yeah!"
The key to low level hacking in SOAP is keeping track of namespace. Even if the real problem is strongly typed data, for the types to operate correctly, the namespace has to be correct. If all of the above isn't enough, try a different encoding on the values.
That is all.