Ok, today I get my Xen test box up. As test I setup an oi b151 pv guest. It's easy the biggest problem is the missing kernel-extractor (pygrub doesn't work due to too new zpool-version, maybe someone with mor in depth knowledge could improve pygrub or pvgrub to help here, maybe pvgrub could do it already, have to check, anyway).
Get your desired livecd (text should be fine, is my preferred one, why a pv guest should have a full gui)
First copy /platform/i86xpv/kernel/unix for a 32bit guest or /platform/i86xpv/kernel/amd64/unix for a 64bit guest from livecd (loop mount), then copy /platform/i86pc/boot_archive (32bit) or /platform/i86pc/amd64/boot_archive (64bit) to dom0.
Now you need two different guest configurations, one for booting the livecd and one to boot the installed guest. The commented lines are examples for 32bit mode, I have excluded network as my testbox needs some network tuning before I could do fancy networking things (Open vSwitch )
The interesting part of the guest configuration for the installed guest is the zfs-bootfs part, you need this information beside the actual boot_archive and kernel file from the guest image, for first boot after install the livecd kernel and boot_archive is fine. If you miss to extract the information, you could use the livecd to get it or zfsonlinux.org but this is really for those who know what they do.