Hello,
Thank you for your message. However, you can forgive someone something, and it is used exactly as shown in the sentence. When you say you forgive someone his eccentricities, it means you are willing to overlook them (because you like his other qualities, for example).
In this context, I would find forgive sb for sth rather odd - as though he'd actually done something wrong, rather than just having some slightly odd habits. However, you can use forgive sb sth in the usual sense of forgiving someone for some wrongdoing (I forgave him his baseless accusation), but there I would grant you that it is somewhat dated and formal.
You don't have to take my word for it.
Collins (sense 1 in the Learner section) and
Lexico (sense 1) both show example sentences using forgive sb sth.