The operating system should have been identified as the same as the computer. What version of CMDB are you using?
It is - 9.1.04.002
You can enable RE job log in debug mode and see how Operating System CI is identified in source dataset.
Ideally the operating system CI from source dataset should get identified with existing Operating System CI from target dataset. You can verify it from RE job log i.e. which Identification rule is triggered to identify the source CI. The values of source CIs are also listed in RE job log. In case source CI is getting auto identified then it shows you have to add/modify identification rule for Operating System class so that it will find match with target CI. This also shows that the current set of Identification rules of Operating System class are not enough to match with target instances.
Basically RE job log in debug mode will help to you figure out the reason of duplicate.