Hi,
I have similar behavior when update instance data concurrently.
The sequence of my testing are:
1. User A open custom object instance C1. The field F1 of C1 has value "A".
2. User B also open the same custom object instance C1. The field F1 shows the same value "A".
3. User A update F1 from "A" to "B" and save it.
4. In this timing, the database column of F1 is updated to "B".
5. The old value of F1 ("A") is remaining on browser of User B.
--- If User B refresh browser by F5, F1 value will be changed to "B".
6. If User B saves C1, F1 will be updated to "A". F1 value seems to be old value.
I have 2 ideas to avoid the problem.
1. Refresh browser. If anyone already updated instance, refresh will clarify such differences.
2. Keep last_updated_date (use it as timestamp) of instance when instance is opened.
And when save instance, compare held last_updated_date with database. If anyone updated same instance, held last_updated_date < database.
Regards,
Shoichi