I'm having trouble with the title on this one, please edit.
- When users connect to a VM with VNC/NX/RDP/other-tla they get a persistent desktop in a window .
When they connect using ssh -X forwarding they get a local window managed by the local windo-manager that is not persistent.
1: is there a way to run a program on the VM and have it managed locally AND have it persistent?
2: can the client be on windows or OS-X?
ps: in this case the vm's are running Ubuntu
Check out xpra.
I presume you mean "persistent" in that "I can disconnect and come back to my window later as if nothing had changed".
If that is the case, no you can't. X applications go to one X server only.
If you want persistence, you'll have to start a VNC/NX session and then run your applications in there.
Alternatively you could run things directly on the VM's console, if it is set up to run X, and export that through x11vnc; this page shows you how I did that for one customer.