XmlDocument の内容を保存したいときにSave() メソッドと WriteTo() メソッドがありますが
DOM に XmlDeclaration が存在してエンコーディングがすでに指定されていると
WriteTo() メソッドは XmlTextWriter のエンコーディング指定 (コンストラクタにファイル名とともに渡している) を無視して
XmlDeclaration のエンコーディング属性を使ってそのまま出力するようです
Save() メソッドの場合は XmlDeclaration のエンコーディング属性は関係なく
XmlTextWriter のエンコーディング指定を尊重して利用し
XmlDeclaration のエンコーディング属性を書き換えて出力してくれます
どちらの動作が好ましいのかはちょっと判断できませんが
同じような動作をする2つのメソッドで結果が異なるというのはややこしいですね
それに DOM で XmlDeclaration を書き換える方法もよく分からないし...(^^;;