I don't have much right now, but I was thinking of assigning NPCs a set of personality values:
Greed (Cha)
Pride/Humility (Cha)
Zeal (Cha)
Cynicism (Int)
Paranoia (Wis)
(The list is not final)
The system is similar to
Rich Burlew's Diplomacy fix, but when you make a Diplomacy check, it is opposed by a personality check, depending on what you are trying to get from the NPC. For instance, if you are trying to convince a miser to give you an item, you make a Diplomacy check opposed by his Greed check. If you are trying to stop an enemy from attacking you, make a Bluff or Diplomacy check opposed by their Zeal check.
It is harder to Bluff a cynical character, and harder to Diplomance a paranoid character.
You can make a Bluff check opposed by the character's Humility check to flatter them and gain a bonus on future checks.
The formula for a personality check is (1d20 + character level + personality score + relevant ability modifier). An NPC gains a number of points to assign to various aspects of their personality equal to their Charisma score - certain abilities may grant extra points or modify attributes directly (a character with Vow of Poverty, for instance, gains a bonus to their Humility score). For every point spent on Humility, Pride drops one point and vice versa.
The Sense Motive skill can be used to analyse an NPC's personality and figure out which attributes have the highest and lowest number of points.