The problem is not the data, it's rather the primary key of the tables. I assume those are autoincrement. If you give out the db to different people they will create the same primary keys as the value is just increased by 1 each time a new record is created. You didn't get an error on the first import as Access "remembers" the last autoincrement value even if you delete all rows from the table. You will need to make yourself familiar with replication which will ensure unique primary keys throughout the replicas (the databeses you hand out). It also copes with more complicated scenarios as you have.
Rather than use autoincremet for your unique number create a little bit of basic code that creates a unique incrementing number using dcount which creates a number each time one greater than the total records in the table. Clearly make the field indexed with no duplicates an unable to accept null value this will stop any import from being wrongly numbered.