If your XML is somehow always written using UTF-16 (in .NET) , no matter what you try...
I suggest you have a look at Kirk Allen Evan's blog post:
XmlWriterSettings Encoding Being Ignored?
Short explanation is that if you directly or indirectly end up using StringBuilder under the covers, it forces your XML to be written in UTF-16. For deeper explanation and workaround, see Kirk's post.