Whenever I set a body on a mutable request with the method set to anything other than POST, the body is not included in the request and I get a kCFErrorDomainCFNetwork error
Are you remembering to set the Content-Length/Transfer-Encoding and Content-Type headers? I don't think that Content-Length is put in automatically for you, which means the server is going to assume it's 0.
More info: http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html