Is there a way to get tightvnc to host the native display :0?
No, it is not possible with tightvnserver. Most vncservers will try to build a whole WM (=window manager), while your :0 display has, apparently, all of this.
You can check this by not starting your X server at boot, and before issuing the usual startx command, to start tightvncserver on :0. It will work then.
On the other hand, if you are keen on using display :0, you can try x11vnc, which is what I do.
Try x0vncserver. i.e. On arch:
x0vncserver -display :0 -passwordfile ~/.vnc/passwd
http://tigervnc.org/doc/x0vncserver.html
https://wiki.archlinux.org/index.php/TigerVNC