I had such an experience with installing custom keyboard layout using setup programs like "XP Farsi Keyboard".
This setup make similar dll to Kbdfa.dll in System32 folder: kbdfapsoft.dll
I resolve the problem using:
1- Search Windows folder for kbdfa.dll.
I found these:
32 bit dlls:(6.50 KB)
64 bit dlls:(6.00 KB)
2- Copy and paste kbdfa32.dll from winsxs folder to appropriate system32 or SysWOW64 Folders.
3- If you have files like kbdfa*.dll (ie: kbdfapsoft.dll) , Copy and replace appropriate kbdfa.dll to its location, ususally system32 folder with the same name(ie: kbdfapsoft.dll).
4- Copy and paste 32 bit dlls (kbdfa.dll and if you have kbdfa*.dll) into system32\dllcache
5- Remove Perian Keyboard and add it againg.
And its done.
It is better Idea to use standard windows layout.You can use ctrl+shift+2 to type zwnj (Zero Width None Joiner).
Some useful links:
The Microsoft Keyboard Layout Creator
for windows xp to mimic enhanced kbdfa.dll without actual replace of system files.