Your logs are miswrapped (well, they are wrapped). Your VPN server is repsonding that it has no route to the destination address. That seems odd, but it may be that private source addreses aren't allowed to use global routes because of some scoping rules.
I do not know that fd=>global NAT works at all. I do not know that it doesn't. Only that I have never tried. Check that you have net.inet6.ip6.forwarding enabled. I always recommend when debugging netstat -s > BEFORE [do experiment] netstat -s > AFTER diff -u BEFORE AFTER In your case, I'd try to have not much happening, and do ping6 from the client as the experiment, experimenting with ping options to get maybe 10 pps for 10 s. you want a big enough signal that you can see it in the counters. The point of capturing all stats, rather than looking at specific ones, is that you find changes in counters you weren't trying to look at and might not even know exist. I'm not saying this will 100% solve your problem, but it is easy to do.
