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?
http://blogs.msdn.com/kaevans/archive/2008/08/11/xmlwritersettings-encoding-being-ignored.aspx
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.