well for the moment, I got it working by creating a user script to run
zpool export <poolname>
zpool import <poolname>
on array start. Of course this means i can't autostart the VMs, since they're using ZFS for storage, but only a minor inconvenience. It populates the /dev/zvol directory and the drive assignments work properly. Not sure why it doesn't do this on system boot correctly, but if anyone else is using it this way, this is how i got around it.