There are certain things people have to do for themselves, even difficult children. As a parent, you can only do so much. If we were able to make our kids make good choices, their lives (and ours) would be so much easier.
The saying "You can lead a horse to water but you can't make it drink" is so true. You can set up your children's food, shelter, and clothing but if they are not grateful or keep pushing it back onto you sending the message it is not good enough, that is not your fault. Some kids have such unrealistic sense of entitlement.
Somehow the kids (mine included) have to get the message that this is as good as it gets and it is their job to make their lemons into lemonaide. Because, their lemons will look very much like oranges to other kids. And, those lemons look like cake to the person who handed them out. It is not what we have, it is what we do with what we have that counts.
I can not give much advise on how to make this happen because I am fighting the same battle with my kids. Nothing is good enough. Diva has decided that I am the worst person (not just mom, but person) in the entire world because I just can not make her life good enough. But guess what? No one will ever be able to make your life good enough. That is your job, not your mother's or anyone else's. That is what life is all about - making it what you want it to be.
Detachment is finding that balance of providing support but putting the responsibility on your child to do the work it takes to build a good life. No one, not even parents, can build your life for you.
So, as long as you have done and continue to do your very best, you are not a failure. Who knows why these kids (mine included) will not step up to the plate and take their turn at life?