Creo que debes ponerle en su sitio. Él te trata así porque eres la única que se lo permite, pues como bien has dicho, cuando te acabas enfadando, enseguida se vuelve un sol de chico.
Creo que lo de su padre le afectó muchísimo, lo cual es normal, pero que te tomó a tí como la persona con quien desahogarse, y no en el buen sentido. El fallo es tuyo por permitírselo.
Si de verdad le quieres debes hacer que espavile, pero sobretodo, debes quererte a ti misma. Ya bastante que estás luchando por la relación cuando en realidad no tienes esa responsabilidad. Lo haces por amor, lo sé, yo misma también estoy tirando del carro en mi relación cuando otros me dicen que no me corresponde, pero debes saber que hay límites, y uno de ellos es que tu chico te trate de mal. Habla con él seriamente, sé un poco "mamá", pues él se está portando como un niño, por lo que es lo que necesita.
Espero que todo se arregle, un saludo