Dating the devil/angel. HELP

Everyone that knows my boyfriend and I think we have the perfect couple because everyone knows the kind side to my boyfriend. The good side of him is everything you can possibly want from a man. He's caring, surprises me with flowers, cooks, does laundry, cleans, works, goes to school, gets me pampered. He's a mommas boy and has damaged his relationship with his mom to be with me. What ppl don't know is the abusive side to him that insults me with "you're good for nothing, all you do is sleep, you can't even poor yourself a glass of milk without spilling, you're a fucking retard, etc" and I have to say that doesn't happen often but how do those two balance? Should I still be with him despite the bad moments. What's even worse is that he thinks that all the name calling isn't abuse, it's suppose to be encouraging. I'm confused and don't know what to do. We have been together a year and 3 months with out baby due the 16 of July. Please help.