The term "nice guy" here and also in the old saying, "Nice guys finish last" is a misnomer. "Doormats" fail. "Doormats" finish last. That is correct.
Most people know the saying, "You have to love yourself before you can love someone else." That fits right in here.
You have to know what you want and stand for what you want and be willing to end the relationship and live alone to be a real partner. That doesn't mean you don't compromise. It means if you can't stand her mother and she spends every weekend at her folks and wants live by them till they die then you have to end it. Man up and end it.
Accept that you can love someone and not be able to live with them. Accept that your needs are just as important as hers.
Make that clear and stick to it and you're on your way to a healthy relationship. You can still hold the door for her, be polite, remember her favorite perfume, and do all kinds of other nice and considerate things. As long as it is a two-way street you won't fail.
"Failing" in a relationship where you're a doormat is a good thing.