Das geht so schlicht nicht, ausser mit unterschiedlichen Ports, wie du ja schon festgestellt hast.
Du kannst owncloud auf 443 only lauschen lassen. Somit haste dann vm1 http auf Port 80, vm3 https auf port 443. Nur vm 2 musste dann halt einen anderen Port nutzen.
Was auch noch geht. Ipv6 bekommt man /64 er für daheim. Lässt sich in er fritz.box sauber einrichten. Dann kannste jeder vm ne individuelle ipv6 geben und hast den ganzen Nat Ärger nicht.
Gruss Sven