I think this is indeed what we fixed in v2.6:
if you do:
myOrder.Customer = myCustomer;
myOrder.Customer = myCustomer;
you'll see that myOrder.CustomerId is marked as changed. The reason is that when the second time the entity is assigned, the code first performs a DEREFERENCE of the current customer, however that's the SAME instance, but it doesn't check for this.
So the result of that is that the FK field is reset to null, because the related entity is dereferenced.
Then the assignment is performed and the FK field is synced with the PK field, getting the value it had before the dereference action, however because it goes from null to a real value, it is seen as a change.
In v2.6, we don't dereference the related entity anymore if it's the same entity nor do we do a re-assignment, so nothing is done really.
To work around this in v2.5, you've to check yourself if the value is the same instance before the assignment. You now always set the related entity, you should wrap that in an if, so the assignment only takes place if the entity is different.