The unique identifier between Accounts/Contacts in Autotask and Contacts in Xero is the name.
We don't store the IDs between the two systems, we only look at the name. If the name already exists in Xero, the invoices from Autotask are synced under that Contact.
This also means that everytime we sync an invoice to that Contact, we update the details. You can switch this off (we will still create brand new Contacts if we don't find a name match) under Invoice Rules > Don't update existing Xero Contacts (System will still insert new Xero contacts if they don't exist)
There is no limit on the number of contacts we sync between the two systems.