Вот простой пример в котором у меня все работает(Изменения во фрагменте сохраняются).
<data>
<instance id="testEntity1Dc"
class="com.company.jmix.test.entity.TestEntity1">
<instance id="testEntity2Dc" property="testEntity2"/>
<fetchPlan extends="_base">
<property name="testEntity2" fetchPlan="_base"/>
</fetchPlan>
<loader/>
</instance>
</data>
....
<layout spacing="true" expand="editActions">
<form id="form" dataContainer="testEntity1Dc">
<column width="350px">
<textField id="nameField" property="name"/>
<entityPicker id="testEntity2Field" property="testEntity2">
<actions>
<action id="entityLookup" type="entity_lookup"/>
<action id="entityClear" type="entity_clear"/>
</actions>
</entityPicker>
</column>
</form>
<fragment id="testEntity2Fragment" screen="jt_TestEntity2Fragment"/>
<hbox id="editActions" spacing="true">
<button id="commitAndCloseBtn" action="windowCommitAndClose"/>
<button id="closeBtn" action="windowClose"/>
</hbox>
</layout>
<fragment xmlns="http://jmix.io/schema/ui/fragment">
<data>
<instance id="testEntity2Dc"
class="com.company.jmix.test.entity.TestEntity2" provided="true">
<fetchPlan extends="_base"/>
</instance>
</data>
<layout>
<form id="form" dataContainer="testEntity2Dc">
<column width="350px">
<textField id="nameField" property="name"/>
<entityPicker id="testEntity3Field" property="testEntity3">
<actions>
<action id="entityLookup" type="entity_lookup"/>
<action id="entityClear" type="entity_clear"/>
</actions>
</entityPicker>
</column>
</form>
</layout>
</fragment>