I'd perform:
1 - A master reset
2 - A Full Flash
3 - Buy a new keyboard
4 - Junk the phone and buy another one

This problem, if not software related, is often difficult to override.

Good Luck.