He may be a good person and all that, but he's about as mature as a five year old little girl.
If he can't figure out now what he wants and will stick with, then dump him. Trust me, he isn't worth it.
Real relationships are only worth the effort when both people involved stick with the other when times get tough. That's where strengh in a relationship is built. It's at those times that a persons love for another is proven. Just as gold is refined by fire, so is a relationship. Gold is only purified more and more by heat. A relationship becomes stronger and stronger by sticking together through the difficulties. You get through them together, and it makes the bond stronger and stronger.
It doesn't matter who's right or who's wrong in these disagreements your having, when your in a relationship with someone, it's the responsibility of both to see it through.
If he can't do that, tell him to hit the pike!