This is an interesting problem, essentially the approach to take in this situation is to choose which data is the authority and leverage that data source over the other – in this situation if I knew good data was getting replaced with bad data by users, the first approach I would take is user access control – do users need to change this data to do their job? If not, they don’t need access to change it. If they do need to change it, but mistakes get made, in that case I would create a workflow that compares the two data sources, and if the secondary source is different than the authoritative source, it overwrites the alternative source.