Hi Colin,
I have answered all your questions as following :-
1. Where should they upload their files? Do I need to set up a folder within my own directory or is there a seperate one created automatically?
Ans :- Your customers will get separate cpanel account and they will need to upload their content in public_html directory when they connect through FTP or file manager in their cpanel control panel.
2. What would their ftp and cpanel addresses be before their domain nameservers propogated?
Ans :- Their FTP and cPanel login details will be shown to you when you add their new account from your WHM. You need to send same information to your customers.
3. Are their nameserver details the same as mine?
Ans :- Yes. They will use same servers as that of your main domain.
4. How can I ensure that their domain points to their index file in their directory and not mine?
Ans :- All they need to do is point their domains to your nameservers. Apache takes care of pointing respective domains to its own directory as httpd.conf entry is created at the time of account creation from WHM.
You can consider a billing system like WHMCS once you start getting good number of orders. WHMCS will help you with automation as it has inbuilt API to create accounts in your WHM automatically once your customers pay online for a specific
hosting plan.