OK, I finally figured out what I was doing wrong.
My application was being run from an ant script that was using the client jar files from JBoss 2.4.4.
When I fixed the ant script to use the JBoss 3.0.3 jars, suddenly everything was cool.
This may be happening to lots of folks out there - so it is a good thing to check for if you get the ClassCastException from the PortableRemoteObject
I have a variation on this. I get ClassCastException errors during the home interface casting, (using narrow or not) when I am accessing an EJB from inside another EJB. Strangely, the EJB can be reached with no problem from a client. What makes it even stranger is that the problem is intermittent. Each time I restart the App Server, different EJB's are no longer accessible, and ones that were giving me errors can now be reached and accessed. The code worked fine with JBoss 2.4.4. I have looked everywhere on this machine to find any remnants of the 2.4.4 client libraries and can find none. Any suggestions? I am using JBoss 3.0.2.