Have you run the SQL statement that lists the dupe records? Something like:
COUNT(val1) AS Kount
GROUP BY val1
HAVING (COUNT(val1) > 1)
Since you haven't given us any details about your table, you are going to have to substitute the proper column and table names into the query.
This will show you the dupe values that you will need to fix.
Also, keep in mind that you cannot have NULLs in the column you are trying to apply the PK to. So, be sure that this issue is not occuring becuase you have a single NULL somewhere.