I was wondering if there is more I could do to make NPC them more happy, I donate to them give them more food but their happiness rating goes down steady?
Assigning them to "rest and relaxation" in the clan screen (N) usually works for me. Once happiness is comfortably high I'll assign them to something more useful until it drops again.
If you are getting constant fights between clan members, one of them might have the "hates X" trait, where X is the class of another member. Kicking out the hater is the only solution that has worked for me there.