I can't see your first and third screen shots, the writing is too small. However, in looking at the screen shot in post 3, vendor 1082 is not a good example as it only has one dept. Vendor 1084 has multiple depts.
The question is how to determine which record to update. If a dept belongs to a class then you can say: change all records with class 821 from dept 88 to dept 78. This would not give the key violation error message you received, so there must be something else.
Try and find the problem with the original query and how those 14,xxx records are structured.
1 - take the update query and make it a make-table query - store all the fields from the source table
2 - if you can, add a field to the source table with updated y/n
3 - in the update query, update this new field to Y
4 - compare both tables - change the update query to a select query and find the missing records
From this you can determine why you are getting key violations. I suspect that the screen shots you have provided show the "good" records, the way it is supposed to be, but there are "bad" records out there causing the issue.
See if the source table is connected to another table in the database (relationships manager).