Hallo!
Sorry an ML, aber die Antwort ist Quark.
Das obige Replace funktioniert genauso wie mit allen anderen Zeichen (’\r’ und ‚\n‘ sind genauso gültige Zeichen in einem String wie alle anderen auch, also keine „Sonderzeichen“, die unerklärbare Probleme machen).
Mit an Sicherheit grenzender Wahrscheinlichkeit bist Du einfach dem Stolperstein aufgesessen, dass Strings unveränderlich sind und String.Replace nicht den Originalstring verändert, sondern einen neuen String zurückgibt, der den entsprechenden Ergebnisstring der Ersetzung erhält:
string a = "abc";
a.Replace("abc", "xyz");
// a ist immer noch "abc"
a = a.Replace("abc", "xyz");
// jetzt ist das Ergebnis auch zugewiesen worden, also a=="xyz"
Kopf hoch, ist glaube ich schon jedem mal passiert 
Gruß,
Martin
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]