If an invoice has been paid (Balance is 0.0) but the status is still 'Overdue' or 'Unpaid', it might be because of the system's rounding off to 2 decimal places.
You can fix invoice status by adjusting the rounding threshold within Account Settings:
The Invoice module within the Account Settings page has a Payment Rounding setting:
The decimal place rounding setting would look like this where setting:
1 = 0.0
2 = 0.00
3 = 0.000