I have a legacy class XMLReaderWriter which I think I should break into two classes so that it doesn't break the SRP. Unfortunately the class is already in production and I have to maintain backwards compatibility. What would be the best way to go about this? Any relevant design patterns that I should use?
I'd like to know what problems this class is actually causing you. The "Single Responsibility Principle" is one of the most misunderstood, and lots of time has been wasted by placating it.
In other words, "violating the single responsibility principle" on its own is not a reason to spend any time. Wait until it causes you actual problems.
Without code we can't validate the violation, or give specific answers, but going on the assumption that your needs are correct, I would suggest creating your SRP-compliant XMLReader and XMLWriter classes, and updating the current XMLReaderWriter to simply be a facade, outsourcing all of it's logic to your 2 new classes.