OK, to help people who do not yet know what causes this failure I have found that it is due to 2 competing "datasets". One is the one held by the form and the other is the one held by the database. From what I can work out InfoPath knows what data you have changed but when checking it with the database finds an anomaly in either 1) the rest of the data or 2) the primary key does not match.
IMHO I believe it is 1)
Used to get it where someone has a form open or saved on their local computer and someone else modifies the database or more specifically their line in the data.
I am also guessing that if the database is not on record-level locking in access that could cause it if the database table is open, if record level locking then is used it must be down to the record being used.
I hope this helps
Adam