To answer this question honestly... and I'm not saying this to hurt your feelings... maybe he's an "ex" for a reason.
You shouldn't want to change yourself for anyone else. If someone can't care and love you for you, then you shouldn't be wasting your time on them. Relationships are give and take, and if someone is always giving and someone is always taking, then things will never work out.
It's hard to take a step back and realize that YOU are also not happy. You are trying to fit into someone else's grand scheme of things, instead of finding someone who fits nicely into yours. Granted, no relationship is ever perfect, but there shouldn't be any consideration for people who don't love you for every bit of who you are. If they don't like a major part of you (something you do, the way you dress, the music you like)... move on and enjoy the search for someone who fits your likes.
I hope this helps... I know relationships are hard, and break ups happen, but if you step outside of the box of your relationship for a minute, maybe you'll see why you weren't working in the first place.