We may want to charge in the future. Is it possible to charge for some courses and not for others?
=> Yes, it is possible. If you want a course to be free, simply set the price to 0 !
Also as well as using PayPal or debit cards is there an option for the customer to bring cash on the day
=> Yes. You can use offline payment method in this case. When registrants register for the course, they use offline payment. The status of the record will be marked as Pending. When they bring cash to pay for the registration, you can simply set the status of the record to Paid.
At the moment the client has a paper based application process. Is it possible to add bookings to the system from the back end manually?
=> Yes. Simply add registrants manually from back-end.
As I can see, the extension meets your requirement perfectly, so we are looking forward to receiving your order !
Tuan