You said it yourself--the attribute class must implement Serializable in order for the session attribute to migrate to the other VM. If it does not implement Serializable, it will not migrate.
However, the specs do not require that
Java serialization be used to serialize the object for migration. So if the class has custom serialization code, it may not run.