Almost always because the purchase event is firing more than once. The usual causes are the pixel being installed both site-wide and again on individual pages, an event firing on page load so a refresh counts twice, or a second page in the funnel firing the same event.

The fix is to have the event fire on the action rather than on the page. A page load can be repeated by anyone who refreshes. An event triggered by an actual booking or an actual checkout cannot fire twice for the same person, which is why routing it through the automation that fires on the real action is cleaner than putting code on a thank-you page.

Install the pixel once, at the site or funnel level, and not again on individual pages. Duplicate placement is the most common single cause of inflated numbers, and it is easy to introduce without noticing when someone adds tracking to a specific page that already has it.

Fix this before you make any other decision. Every scaling and cutting judgment downstream is being made against numbers that are wrong, and the direction of the error encourages you to spend more than the account can support. Verify by comparing what facebook reports against what your own backend actually recorded for the same period.