I've always been a firm believe that if you made a mistake, you should apologize and if possible, make up for it. However, I do not believe that one should pay for their mistakes over and over again. It's just not how things are supposed to be.
When someone makes you pay for a mistake over and over again, use it to their advantage, and simply make you feel bad, then you should know better. Walk away. Don't look back. You have apologized, you didn't mean to hurt them, and have already made amends. It should be enough. If its not, then it's no longer your problem.
The only time someone should make you pay over and over again is if you intentionally hurt them or set out to destroy them. Unless that's the reason, ENOUGH is ENOUGH. Walk away and learn from it. No one has the right to keep punishing you for the same mistake.