I've seen some confusion about this episode, but it's one where the more I think about it, the more I like what's going on. The first bit is the introduction of this new character.
Out of the blue, Amy and Rory have a new best friend, a new person that they've been hanging out all of their lives with. I was getting annoyed during the first half of the episode. Who is this Mels person who was obviously so important to Amy and Rory and why have we never seen her before? I was expecting it to be River in the car when she pulled up (which of course it WAS but...)
The answer is that this wasn't a stable time loop but rather a spiral. There was an original timeline where Amy and Rory were hanging out a lot together. Amy and Rory played the Raggedity Doctor game and they slowly fell in love. Then there is now a new time line where Mels managed to find Amy and Rory and became the third member of their group. That's why Amy had to be nudged into thinking that Rory loved her. The new dynamic with Mels meant that Rory was frequently shoved a bit (well a LOT) to the outside where Amy and Mels played their games and Rory thought they were still playing Hide and Seek.
Think of Back to the Future where Marty first messes up his parents' meeting and then fixes it. In fact they both had the same joke where they named the baby after the other character that they knew. Both times that name would have been chosen. What changed is the reason why it was.
So that's why we suddenly get told, "Oh yeah, they also had this OTHER close friend all along," because from the universe's perspective that's how it happened. For those counting, this is at least the 5th timeline for Amy:
(1) Growing up with no parents but a fiancee. Amy is somewhat cold towards him but did agree to marry him.
(2) Growing up with no parents and no Rory. She's not the marrying kind at all then.
(3) Growing up with no parents, no Rory, and no stars. We don't really get to see the adult Amy then.
(4) Growing up with parents and Rory. She's a lot warmer towards him now, showing physical affection and having a pet name - albeit one that is "Stupid/Stupid Face"
(5) Growing up with parents, Rory, and a female best friend. In this case, she is so warm towards Rory that she has to tell him that she loves him before she dies. My guess is that the biggest change here is that Mels is so focused on The Doctor and her hatred of him for not doing enough to save people that Amy avoids the worst mockery/mental work on her imaginary friend because Mels takes more of the focus.
So there's the other question: why did River flip to the good side so quickly. That also was kind of explained. What's Mels constant complaint about the Doctor? "Why didn't he save people on the Titanic?" "Why didn't he stop Hitler?" Right before she saved him, she saw that he was trying to help Amy and Rory even as he was dying. That broke through the Silence's propaganda and made her realize that he wasn't who she thought he was. Then to discover right after that she wasn't who she thought she was... well that's as legitimate as anything.
The one thing that would make sense is if the shock of losing her remaining regenerations muddled her memory some, giving her a vague recollection of The Doctor but not much else...Otherwise, she has too much knowledge for The Impossible Astronaut.