I've never seen a case where fields are duplicated unless there's some error in the source data. The closest I've seen is a common situation when dragging contacts from Contact to Numbers, namely the seemingly-inconsistent format/order of the fields.
Unfortunately, when you understand what's happening, it kind of makes sense.
Not every contact has the same set of data.
Some contacts may have company names, others don't
Some contacts may have no address, or a home address, or a work address, or both
Some contacts may have no phone number, a home phone number, a work phone number, or more
Some contacts may have no email address, a personal email address, a work email address, or any combination of email addresses.
In other words, every contact may have an inconsistent set of data associated with it.
The problem stems from the fact that Numbers does not output every possible field every time. It only outputs the minimal number of fields to cover the data for the selected contact(s). Fields that are empty for all contacts are omitted, and fields that exist for any contact are included, just left blank for any contact that doesn't have that data.
That means if you drag one business contact, you might get the fields:
First Name, Last Name, Company, Phone: work, Email: work
each of which have data for that one contact.
However, dragging two contacts - one business and one personal, you might get:
First Name, Last Name, Company, Phone: home, Phone: work, Email: home, Email: work
Where the 'work' fields for the personal contact and the 'home' field for the business contact are blank.
In other words, the data makes sense for the specific incident, but may not be consistent when different contacts are dragged at different times. If you try to merge these two datasets by simple column order, the 'Phone: work' field in the first set was the 4th field, but is the 5th field in the second set, hence the mismatch.
There are a couple of ways of addressing this. The key, though, is whether this is a one-off kind of thing, or if it's something you do frequently, since that helps determine the pain/work effort level needed to solve the problem.
If it's an occasional thing, then it may be sufficient to drag the contacts to a new sheet where you can check the field headers and order, stripping fields that you don't want. Then copy this trimmed data into your main sheet.
If it's a more frequent thing, then you could consider some kind of scripted solution that extracts the data you know you want from the Contacts and writes a CSV file (or, even better, populates your spreadsheet) with the required data in a consistent format.