Not sure if you still need help, since a lot of good advice was covered, but sometimes it helps me -- while i'm still learning the song -- to take one part i'm messing up, and just play (and sing) that small part over and over really slowly. Then I just speed it up gradually until i'm up to par.
If you do that make sure you keep practising the part you're messing up until you can do it flawlessly, while having the tempo FASTER than your preformance tempo. If you can play it evenly and rhythmically while you're singing all while you're playing at a faster than 100% of the performance speed, no doubt you'll be able to play the song which greater ease. it really gives you much more time to think about adding dynamics and contrast, rather than worrying about getting a chord or riff right.
another piece of advice that is really commonsense is to really concentrate while you're learning. Often what happens is people think they're practising when they're really just goofing around (lol) doing a [mind the language] half-assed job. Don't allow any TV shows to distract you, or people to talk to you while you are practising a piece. If you do, what happens is you won't remember a lot of the things you are practising. You'll be using muscle memory the next time you play it (your fingers will know where to go even if you're not thinking), and that is NOT GOOD!! Sure its great for showing off to your friends when you can multitask because you can think about something else while your fingers do all the work, but when you make a mistake its quite possible you'll find yourself with a
mental blank!!! SO in order to avoid that you'll need to commit the entire song to your real memory. That means you'll be able to start from anywhere in the song and finish anywhere in the song because you'll know EVERYTHING about where your fingers need to be, what the lyrics are, how to strum etc.
In short(er), Take away distractions and try finding a silent room or something, making sure . start sloow (and I mean mind numbingly slow! don't do it half tempo, do it quarter tempo and work your way up. Even though you'll be bored out of your mind for something like 10 minutes, you'll thank yourself for it.)
When you can do that, speed it up and repeat. Don't do erratic speed jumps - do small increments. Work up to 100% of the song's original speed and
EXCEED that by a mile, making sure the only difference is that its faster. You want it to be just as evenly played and sung. Then you can perform with ease.
Lastly, if you do find yourself with mental blanks, Go back to doing the piece slowly. Doing it really slowly makes your brain think about what needs to be played next. In doing this, you'll be able to figure out what needs to be improved, what areas you haven't truly commited to memory, and so you'll be able to patch them up. Always make sure you practise enough to be sure you won't
EVER get it wrong (or close to)!
Holy cow that was a long post. Hope it helps