OK - she's learning that she can ignore you in certain situations - that she doesn't have to come to you because she can ignore and then have a brilliant game of chase/catch too.
For what it's worth, I think they always need a command, not just their name. Names are used all the time, for a billion different things and a dog hasn't got a hope in hell of working out when their name is meant to mean come, or when it means sit or when you're just talking to her.
I would introduce a command word - so it would become 'fido come' and up my treat value quite significantly. Something like bits of hot newly roasted chicken, or similar - something which is mindblowingly fabulous for your puppy. Go for a walk and call her in at random, over and over again without putting her on a lead and treat with the mindblowingly thing every time. Make sure she knows you've got it and that it's for her when you set off. Don't set her up for a fall at this stage and only call her in when she has no distractions.
The introduction of a new word will give you the chance to teach the required behaviour all over again!
Can you walk with a gang of other dogs at the moment? That would really help her be a bit less out of control when she spots a chum. One of mine is 5 months at the moment, and usually walks in a group so is less interested in others we spot. I don't ever let her get away with ignoring me, she's at the stage now of not being treated unless her recall is lightning quick!
You have a brilliant opportunity to fix it while she's still wee - and once it's ingrained, you'll have a lovely reliable dog. No dog will ever be 100%, it's not possible but she'll be pretty good.