The word deserializing on your error message tipped me off - that wasn't supposed to appear in a normal scenario. That means it's a problem with the XNA content pipeline.
This happens because you were trying to build the XML through XNA's content pipeline. The solution is as simple as changing its Build Action property on the file from Compile to Content, and toggling the Copy to Output Directory property to true.
My old advice still applies though:
I don't think you should be adding whitespace to your data as a way to indent and make your XML look better, since they're not part of the data you're trying to store. This will force you to trim it when you read the data back, which is unnecessary in my opinion.
I think you should get rid of the tabs altogether, and possibly choose another character to act as the line separator (e.g. instead of using "\n" use a normal " " space).
Edit
i think i might know what it is that is causing the issue. For some reason it seems, compiling the XML into the game, it doesn't like the ',' thats is separating the values. Changing that it works :O. Unsure why its so fussy?
I am guessing that maybe your content writer is still doing a split by " " and then writing it in that way to the stream, but since you're now separating your values by "," it's not written correctly. So when deserializing, the ReadObject method is expecting a list of rectangles, but finds something else and fails.
Add your content reader and writer to your post if you need help figuring that out, but it really should be just a matter of keeping both with sync with each other and with the file format.
Edit 2
By the way, this doesn't look right:
anim.Rect = new List<Rectangle>();
anim.Rect = (List<Rectangle>)input.ReadObject<List<Rectangle>>();
You probably only need the second line. You're creating a new list and then overwriting it immediately. Not that it doesn't work, but is wasteful.