Hi Glyph,
Our .NET library creator informs me that this is a common problem and has a standard fix.
.NET's WebRequest class trims the response to a default of 64K if it gets an http error response code. The AdWords API returns a failed response with a 500 code, and if the error response is too long (e.g. policy violation with stack trace), .NET trims the response, thus causing invalid xml error in the SOAP layer.
You should be able to resolve this by changing the
App.config to include the following lines:
<settings>
<httpWebRequest maximumErrorResponseLength="-1" />
</settings>