The easiest solution to all “a proxy broke Webmin/Virtualmin” is to simply not proxy it. You can create as many names as you want within your zones, you don’t have to proxy all of them. There is no benefit to proxying Webmin through Cloudflare, so easiest to just provide yourself and your users a path to Webmin that is not through a proxy.
If you must proxy it, you have to configure it to operate through a proxy. This is covered in the FAQ (at least for Apache and nginx, I dunno how Cloudflare might be different): FAQs | Webmin