This problem is realy based on the sequence of GenNodes in .gmfgen model,
so sometimes you can see it is working properly (for the D/E nodes in your
model) by this is only because of the fact that E GenNode is defined before
D GenNode in your .gmfgen model. I really suggest you introducing OCL constraints
to get rid of this problem - this is a well known situation and you can see
how this situation was solved in GMF-based ecore diagram editor (EEnum is
a subclass of EDataType, but we have to represent these two diagram nodes
using different graphical notations).