I am looking for an idiom or expression to describe a spiteful and vindictive person; a type of person who tends to hold a grudge against their offenders for a long time, being unable to forget past offenses.
One idiom you might find helpful is:
Cut off one's nose to spite their face.
You can use it to convey your intended meaning by employing it in the way I do below.
Rick was so hurt and upset by Lupita's trick that he ignored Lupita for years after. This reaction ultimately backfired, however. The following year, when the two were selected to perform a skit in front of the classroom together, Rick refused to give his lines whenever Lupita addressed him. Lupita performed the skit as best she could, giving all of her lines despite Rick's silence.
Lupita received an A for the assignment. Rick received an F. The class congratulated Lupita at recess. They gave Rick looks of disapproval.
"Talk about cutting off your nose to spite your face," said Ms. Spiegel.
In case the passage doesn't make it clear, when someone "cuts off their nose to spite their face," that person's vindictive behavior ends up harming themselves as opposed to the intended target.
In the passage above, Rick's tactic of ignoring Lupita ultimately hurts his academic performance and social standing. Meanwhile, Lupita does fine in both respects.