OMG, that’s exactly what I did last month at niht.students.net.in to host over 500 WordPress websites for students of a digital marketing training institute!
I differ from you in this: I did not create a user account. I did what @tpnsolutions recommends and created a virtual server for each domain / student. This method gives the student / user the ownership of the index.html file and sidesteps the issue you are experiencing with ownerships and permissions.
In my quest to get Virtualmin tweaked to let the training institute create 500+ accounts quickly and to get a server with relatively modest specs to host so many websites, I have designed a workflow for the institute and made some customisation to Virtualmin. I have sent you a private message in case you wish that I do this for you too, as a professional service.
However, please be aware that there are many helpful folk in the Virtualmin community who are good enough to assist free of charge to get you where you want to go with Virtualmin without your needing to hire a pro.