The default is to move everything, and it is the wrong default
When a migration begins, the safest-feeling instruction is to bring across every customer, supplier, item and account. It feels safe because nothing is lost. What it actually does is transplant a decade of accumulated inconsistency into a system that was supposed to fix it.
Three suppliers that are really the same company. Item codes that encode a warehouse that closed in 2019. Customers with no tax number because the field was optional. None of these get better by moving.
A workable sequence
Freeze, then extract
Pick a cut-off and stop creating new master records in the old system after it. Extract to a spreadsheet you can actually read, one sheet per entity.
Deduplicate before you map
Sort by name, by tax number, by phone. Merge what is obviously the same party and record the mapping from old code to new. Do this before touching the target system, because it is far easier in a spreadsheet than after import.
Decide what is dormant
Anything with no transaction in the last two years is a candidate for archiving rather than migrating. It does not have to be deleted. It has to be kept somewhere that is not the live master file.
Rebuild the code structure once
Item and account codes are the hardest thing to change later. If the structure is going to change, this is the moment. Agree it with the people who will type it every day, not only with finance.
Import in dependency order
Chart of accounts, then tax rules, then warehouses, then item groups, then items, then parties, then opening balances, then open documents. Each layer validates the one before it.
Reconcile before you celebrate
Opening balances are not migrated until they agree with the old system to the cent. Trial balance, stock valuation, receivables ageing and payables ageing should each be printed from both systems and compared line by line. This is tedious and it is the step that prevents a year of doubt.
One rule to hold on to
Every record that crosses into the new system should have someone willing to say why it is needed. If nobody will say it, it belongs in the archive.