She doesn't hate you, you need to believe that. However much it hurts to experience what she says and does.
You say her mood swings are horrendous, but you can't know for sure if they're entirely drug related or not. Many teens, mine included, can go from hysterical screaming to lovable child in a matter of minutes.
The drugs aren't going to help though, that's for sure.
What I'm trying to say is take all the peripherals away - drugs, boyfriend, 'all the shit in her life' - and what you seem to have is a teenager who is really struggling to cope with growing up.
The fact she took her Christmas presents says something? Unless you believe she is going to sell them for drug money (and she could have taken anything for that) maybe the child in her saw them and went 'ooh, presents! For me!!' and took them - in her eyes their hers anyway.
I'm not excusing anything she has done, just trying to suggest a way of dealing with what happens by detaching from it. Not an easy thing for a parent to do, especially a mum.
She got her GCSE's - that is NOT a daughter who doesn't care about her future, or who doesn't understand a need for hard work. So something you've taught her in life has stuck.
You just need to hang on for the ride until the other stuff you tried to teach her comes through too.
I support what you've done entirely. Whether she's pushing boundaries, fighting against your parental authority or just trying to work out the rules in her new young adult life, she's gone too far. And now she needs to understand that in her new world where she thinks she's invincible, she isn't and that this is not acceptable.
You can make it clear to her that she is welcome in your home, but there are standards of courtesy and behaviour that come with that. Drug taking a definite no. Those are the rules, she breaks them and she's out.
You need to be totally unemotive in your dealing with her, state your terms. She may argue or try and discuss. do not. State your terms. Just do that and walk away from any argument.
Be ready to accept that she won't stick to them completely, because she won't remember them mostly and teens don'ty really live in an exact world. If she crosses or looks like crossing the lines, just re-state your terms and walk away from any argument.
I know it's not that simple in practice. But you are no longer her mum in a nurturing sense, you're the controlling parent she's fighting to be independent from. You have no parenting weapons left, other than removing the roof from over her head, she will understand that if you tell her clearly and often enough.
And not in the heat of an argument.
I'm sure you know this though.