Sheesh, we hear you mate!
Look, I don't think it's healthy when people say, "I'll do whatever it takes to keep her/him". In the end it only builds resentment, because you don't feel appreciated for the effort you've made and you feel as if you've been disempowered in the process. It's not usually a good idea to hand your power over to another person, just so that they will stay with you.
I think that all you can do is explain, again, to her what the situation was. Perhaps put it in the form of a letter or an email so that she can see the words.
In the end it is her choice to feel lonely, it is her choice to be upset. She is behaving this way because it gets a reaction from you and discomforts you - she felt lonely, so she figures she'll make you feel upset that you didn't do enough to relieve her loneliness. In actual fact it is her responsibility to do things that will ease any loneliness she may feel in your LDR.
LDRs involve a lot of compromise, tolerance and patience. If you genuinely feel that you've done your best, then that is all that you can do. If she can't accept this, is unwilling to accept your explanations and 'punishes' you - then perhaps you would both be happier as single people.