As if often the case (!) - the mistake was mine - not the model.
Error in my code meant that parent matrix was not being applied to sub-model lines if the sub-model line was a reference to another sub-model.
Courmorant model now flattens correctly (my flattened version attached).
Error in my code meant that parent matrix was not being applied to sub-model lines if the sub-model line was a reference to another sub-model.
Courmorant model now flattens correctly (my flattened version attached).