Trying to enable IPv6 results in a "No route to host" error

Inside your virtual machine, run the following:

ping6 ff02::2%eth0

This ff02::2 is the IPv6 "all routers" multicast address. The on-link router will respond to the ping with its own address. For example:

64 bytes from fe80::56e6:fcff:fef4:66f1: icmp_seq=1 ttl=64 time=0.347 ms

You can then add this in as the gateway address.

iface eth0 inet6 static
        .....
        gateway fe80::56e6:fcff:fef4:66f1
        .....

Your netmask should be 64. With IPv6 every LAN is usually a /64. I guess your provider allows you to use a /112 from that /64, but you should configure a /64 on the interface.