It sounds like you have spent thousands on your BF and your BF has saved thousands and spent next to nothing on you. He is cheap, selfish, greedy and self-centered. What does he DO to show you he loves you and cherishes you?
If, when you have separate finances, you don't share in costs for holidays, treats, meals out, etc., it becomes "joint" on one side and separate on the other. Like you and your BF. You deserve so, so much better!
Until you can either get him out or you decide to leave, I would change a bit, even if it might make you feel bad. When you split the cost of a dinner one of you makes, divide it exactly in half. Tell your NVDP, "I paid for half, so half I get. I will keep what I don't eat for my meal tomorrow." If half isn't enough for you to eat, feel free to go out and get yourself something. One day, when he makes the meal and wants half of the money, look at it and say, "No thanks. I'll go get takeout instead." Yes, it is petty. Perhaps, though probably not, he will get a clue how it feels and it will open up a frank discussion.
Best thing to do though, stop treating him at all and get your ducks in a row and toss him aside for a chance at real love, friendship, sharing and commitment.