Start/End and Catch/Throw events dropped into a SubProcess are not added to the correct XML element - they are always placed in the top-level Process instead. So the XML looks like this:
<bpmn2:process id="process_1" name="Default Process">
<bpmn2:subProcess id="SubProcess_1" name="SubProcess"/>
<bpmn2:startEvent id="StartEvent_2"/>
</bpmn2:process>
instead of this:
<bpmn2:process id="process_1" name="Default Process">
<bpmn2:subProcess id="SubProcess_1" name="SubProcess"/>
<bpmn2:startEvent id="StartEvent_2"/>
</bpmn2:subProcess>
</bpmn2:process>