You can give someone everything you have. You can give them every being of you, every single fiber and sometimes it still isn't enough.
You can't morph them into someone you want them to be. You can't fix someone. No matter how much you think you can. No matter how much love and affection you show them, it won't change them. You can disagree, but people don't change just because you want them to. Don't give someone your time and effort when it is not going to be reciprocated.
Stop wasting your time on people who aren't worthy of it.
This will make you sad and leave you wondering what you did wrong. Truth be told though, it's them and not you.
You can't live your life trying to make people better. Everyone has baggage but you need to find baggage that matches yours. Not baggage that is heavier than yours. Don't let people waste your time.
You can think it will get better but the odds of that happening are very slim. Realize what is happening and address it, but don't let yourself become a welcome mat that people can just walk all over.
You can't fix the frat bro with the Xanax problem or the pretty girl with daddy issues. Depression just doesn't go away. That's their own issues that only a professional could help. I know this is incredibly cynical and sad, but it's unfair for someone to be invested in you when they aren't even invested in themselves.
Instead of wasting time on others, spend time on yourself.
Empower yourself. Become a stronger person. Study hard. Hit the gym. Take care of yourself. Someday, someone will walk into your life and it'll all make sense. All the time you've spent trying to fix others will stop because you won't need to fix this person. You'll be able to grow together. You'll have matching baggage.