The public DNS would resolve to the DMZ caddy by a wildcard record.The LAN network would use split DNS and resolve the LAN caddies as local network IP (RFC 1918).
Of course it would be necessary to restrict the proxy for the network/caddies.
I will try to create such a setup but I would be interested if you see already any issues, which would not allow me to get it working with the current state of caddy and forward proxy.
Another option is to share storage (e.g. via NFS) between the three and then the public facing one can solve challenges initiated by the other two automatically.