I found another post in the forums that fixed the problem but the solution is not ideal:
Under Setup > Payments > Payment Gateways, tick "Force One Time Payments" and unstick "Force Subscriptions".
That didn't work, so I added another payment option "Bank Transfer". That adds another option to the drop down menu on the invoice and now when the client selects PayPal that pay now button appears.
This looks like a bug with WHMCS where you have to use at least two payment options for PayPal to work.