Create the leave record with its real start date, even when that date is before your migration. Statutory weeks are counted from that date, so SSP weeks already used and SMP weeks already paid fall out of the calendar automatically. There is no separate "weeks used" counter to fill in.
What else do I need to supply?
Two things. First, the average weekly earnings: set override_awe on the leave record, because we hold no earnings history from before the migration and cannot calculate it ourselves. Where the earnings history is in Moonworkers, POST .../employee/{id}/calculate-awe/ calculates it for you. The reference date it uses follows the leave type: the end of the sickness period for SSP, the qualifying week for SMP, SPP, SAP and neonatal care, the start of leave for shared parental leave, and the date of death for bereavement.
Second, the employee's opening balances for the tax year, at .../employee/{employee_pk}/opening-balances/{tax_year}/. They carry smp, spp, sap, shpp and spbp as the amounts already paid, which keeps the year-to-date figures and your EPS recovery correct.
Is anything else required?
No. The real leave_from date, override_awe and the opening totals are all you need.
Doing this in the app rather than the API?
The same principle applies: record the leave with its real start date, and enter the amounts already paid in the employee's opening values. See "Moving your payroll to Moonworkers part way through the tax year".