Hi Daniel,
Welcome to KS. I'm sorry to hear you've had such a rotten experience. I've definitely had my share of that type of situation, and I vow to never repeat it. I never work without a contract and I spell things out very clearly in that contract. If my client requests something that is not in the original scope, I let them know they will be charged my hourly rate while I work on the change request. Usually that causes them to give their changes a second thought. If it's something they really want/need, they'll pay. Otherwise, they'll live with what they've got.
Since you do not have a contract, I can't see how you'd be bound to issue the refund. Maybe you could let her know in as nice a way as possible that all her change requests were billed at $X/hour. Surely it all adds up. Personally, I would not offer a refund and if she ever approached me for work again, I'd probably tell her my schedule is too full or I'd refer her to someone else (though I'd hate to put that kind of client on any friend of mine ).
Good luck with it!