YABU as you are letting this behaviour happen rather than being proactive and putting a stop to it by saying "No". Yes it can be difficult but which would you rather have - a difficult conversation once or a user friend forever?
I’d mentioned I was out and I’d let her know when I’m back ... but within ten minutes she was at my house.
Firstly you should have had the door locked (especially if you were in the garden) as otherwise anyone could walk in, rob the place and you'd be none the wiser. Secondly when she appeared you should have immediately called her out "I said I'd message you when I was back but we decided we wanted needed some quiet time to ourselves, that's why I didn't message you."
Straight away the child was hungry she claimed she had fed him so within the hour I was having to make tea early as she was already hinting at what was for tea and also had helped herself to food in the cupboards. I was having to make her child food and he was then in the freezer.
Shut that shit down immediately - you didn't have to make tea early, you could have told her any number of things "Sorry we are going out for tea so if you're wanting your tea you'll have to go home"; "We had a late lunch so won't be eating until later" etc or at most offered a small snack "We aren't eating tea until later, you can have an apple if you're hungry now"
When they were helping themselves you should have told them to put it back "I need that for school lunches/a meal later in the week etc please put that back". "X put that back in the freezer and close the door, it isn't yours."
She’s also a smoker like myself so as you can imagine never has any cigarette’s(I’m trying to quit too and seem to end up buying more).
Why keep buying more, just say no "Sorry, I'm cutting down as I can't afford it any more. These are all I have left to last me the week and I can't afford to buy another pack and if I keep giving them to you then I will be left short".
she did it when I said I had plans for the day.
She does it because you allow her to. Why didn't you tell her this when she arrived? "I said I had plans because I didn't want anyone coming over, you have ignored that and have come over anyway, why? Please leave"
It makes me feel bad for her child not being fed but she can’t rely on me to feed them both.
That's not your responsibility but she knows that if she turns up you will do it anyway so she keeps turning up. Stop allowing it.
Her child destroyed my house and had everything everywhere, broken my daughters outside toy to play fight and spent the time in a mood as he wanted his own way. She spent the whole time complaining about mil complaining about the state of her house from them
So shut it down, if she complains just redirect the discussion or (if you are really annoyed and think she's in the wrong) call her out on it. "You're complaining because your MIL doesn't like the state of her house. If you and X treat her house the same way you're treating mine - breaking things, making a mess and not clearing up, helping himself to things from the cupboards etc then I'm not surprised she is annoyed."
"X, stop doing that you will break it. X, put that down. X you have dumped out the Lego, please put it back" and if something is broken then make sure everyone is aware and don't just let it slide. "X I told you to stop that or it would break and now it has broken. CF friend I think it's time for you to go home now as X has broken DDs toy and they aren't getting on so it's no longer fun for us to have you here"