そのXMLをstringで保持しなけりゃならない理由でもあるの?
そうでなきゃXmlDocumentで保持しておけばいいと思うんだけど。

SaveメソッドのオーバーロードにはTextWriterを引数に取るのもある。
TextWriterの派生クラスにはStringWriterもある。
後は分かるな?