I'm using proxies with polymorphic objects and haven't had the trouble you describe. I have seen some problems when querying the data using HQL. Polymorphic queries are discussed in the reference manual, albeit quite lightly:
http://www.hibernate.org/hib_docs/reference/en/html_single/#queryhql-polymorphism
Probably the difficulty lies in the fact that you've got a proxy on the base class. Try not defining a proxy for the base class and ONLY put the proxy on the sub-classes. The reason is that when class enhancement occurs, it creates a descendent of the enhanced class (no magic here, just plain old sub-classing). That enhanced class would be a
sibling of your sub-classes, not an
ancestor.
In order to get the polymorphism right you also might have to experiment with explicit polymorphism, described in:
http://www.hibernate.org/hib_docs/refer ... tion-class
under implicit vs. explicit polymorphism (do a search).