Back in the 2.4.x days, we only encountered this problem in two instances. One was when we upgraded our JDK and it started producing different UIDs (server and client had different JDKs) - at least that's what I think was the problem as my lab scratchings are now a bit incomprehensible to me now. The second was when we didn't update the clients correctly.
You may want to check the UIDs on the client and the server - first through serialver with the JDK. The next would be to System.println in-program.
The reason EJBHome works is because every home class extends it, so you'd hope that narrow works for EJBHome otherwise your problems are bigger than you imagined. ;)
Check those and we can go from there.
Thanks. FYI...our client and server workstations are the same machine and we've verified the JARs used by the client are the same as those used by the server. Finally, we tried deploying our EAR file under JBoss 3.something and no longer received the error.