If an invoice has been paid (Balance is 0.0) but 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 making adjusting 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