A hard time in my life :(

I'm just gonna be straight up. My boyfriend didn't have the best childhood and has always been seen as a bad kid throughout school. When I met him he was a senior in high school and he was trying to clean up his act ever since then. Now don't get me wrong, he smokes weed and drinks which is against my moms beliefs so I don't do it and she doesn't approve of him doing it. He has bipolar disorder which can make things even harder at times. He was also kicked out of his house and lost his car in a crash so basically life is shit right now for him and it's effecting me quite a bit. He's struggling to pay off the crash fines and will be taking on a second job soon to help pay. He was not raised well so he doesn't know how to do things correctly in life such making decisions without guidance. He showed up to my house smelling of alcohol and my mom told him not to come back for at least a month. This is hard on me because I just have to sit back and watch him fall apart and we can't even see each other for comfort. I don't know what to do because I love this kid so much and he has brought so much happiness into my life since we met 2 years ago and started dating and I have never seen the bad side of him that everyone else has. But there's no one to go to because of his bad rep, no one likes him. Everyone has hated on us as a couple from the beginning and I try not to let it get to me but sometimes it's just to much. The school doesn't like us, my mom doesn't love him, and my bestfriend doesn't favor him either. There is no strain on the relationship, just us as individuals going through these hard times. I just needed to get that off my chest because these few months have been absolutely horrible and I'm really just praying that he gets his shit together so we can go back to the way we were and prove everyone wrong.