В дескрипторе main-entity-edit.xml обновите fetchPlan так чтобы fetchPlan subEntities совпадал с fetchPlan редактора
<instance id="mainEntityDc"
class="com.company.compositionissue.entity.MainEntity">
<fetchPlan extends="_base">
<property name="subEntities" fetchPlan="_base">
<property name="mainEntity" fetchPlan="_base"/>
<property name="previousSubEntity" fetchPlan="_base"/>
</property>
</fetchPlan>
<loader/>
<collection id="subEntitiesDc" property="subEntities"/>
</instance>
У меня это решило проблему.
Как я понимаю в таком случае просто не происходит перезагрузка данных при открытии редактора и как следствие в поле previousSubEntity ставится обновленная версия, а не подгруженная из бд.