After a client pays for a recently expired domain, the Domain Status remains 'Expired' and is not updated during sync anymore.
Even if one sets it back to 'Active' manually, the next cron run sets it back to 'Expired', because the domain sync runs later...
It would be nice if it is set back to 'Active' automatically (and update the expiry date) after payment has been received and the domain is renewed.
WHMCS has always done this. To trigger the updating of the domain status and expiry date, the invoice would need to be paid in WHMCS, the renewal command successfully sent to your registrar and successfully processed.
If this is not happening review Utilities > Logs > Activity Log at the time the domain renewal invoice was paid and that should provide a clue.
If you are not using a registrar module to automate domain tasks and are manually renewing domains on your registrar's website, after you have renewed the domain the expiry date and status would need to be updated manually in WHMCS.
I would suggest using the Email registrar module instead, as that will return success for renewal commands, thereby increment the expiry date forward and change the status to Active upon payment: http://docs.whmcs.com/Email