I put this in the Bug (6844) as well but in case this catches your attention first.
After a bunch of digging what I think is the issue. In the sample I provided the code makes it into the "if" in the generated collection function "OnRowChanged" below, but when I inspect e.Row.RowState it claims the row is unchanged.
After only the couple of tests that I have set to test this issue it appears to function as expected when I made the change to the generated code.In my sample the file is DomainGendersCollectionGenerated.cs and the line in question is 174.
I have modifed that line to look like this
if(e.Action == DataRowAction.Change && mModifyUpdateOn && e.Row.RowState != DataRowState.Unchanged)
it used to look like
if(e.Action == DataRowAction.Change && mModifyUpdateOn)
I suggest that you modify the appropriate line in the generator code file "DomainCollectionGeneratedTemplate" Line 638 and test.
The only thing that I can think that this might affect is the subdomain.Merge functionality, I cannot be certain.
Let me know if you still are having issues reproducing my issue here.