I'm using the jBPM 3.2.10 packaged with JBoss SOA Platform 5.1, but on all other points you are describing exactly the same problem I'm having.
The problem does not occur the first time you enter a value in the rich:calendar (that is, you are not overwriting any previously registered process variables). Therefore, I suspect the problem is that jBPM persists this initial Date through the underlying DbPersistenceService, and then the next time you retrieve the value from the database, it is wrapped in a java.sql.Timestamp and rich:calendar trips over it.
This gives rise to two possible solutions: either make the DbPersistenceService return a java.util.Date, or make rich:calendar properly handle java.sql.Timestamp values.