A worked example of how an IT services firm tracks monthly support hours against a contract and bills the extra work.
The setup: a managed support contract of 2,500 per month with 20 included hours. The client also needs a software licence passed through at cost. Autovella shows the hours and the expense, so the invoice matches the work.

Worked example, not a customer result. All numbers below are made up to show the arithmetic. Replace them with your own rates, hours and fees.
Logged support hours sit on Timesheets against the client's support project. The licence is an expense on the project. Check that the expense is set to billable, since the invoice pulls in every approved project expense in the date range. See Tracking expenses.
Billable flag. Generate from Project includes all approved project expenses in the date range, and it does not check the Billable to client flag. Remove any internal expense from the range or keep it on a separate project.
No. There is no automatic recurring invoice. You create the monthly invoice, add the contract fee as a Custom Item and generate the overage from the project.
Client users with the Customer role have read-only access to the projects and tasks they are linked to, so they can see progress. Check the sharing and access setup before you invite them.
Generate from Project includes all approved project expenses in the date range, regardless of the Billable flag. Keep internal costs out of the range or on another project.