Hello Liam,
the host portion of the IPv6 ISATAP address should be:
0000:5EFE + 32bits equivalent of IPv4 address of tunnel source interface.
see
http://www.ietf.org/rfc/rfc4214.txt
section 6.1 isatap interface identifiers
in your case it should be:
3FFE:80C0:22C:817F:0000:5EFE:0A0A:0A01
and link local should be:
FE80::0000:5EFE:0A0A:0A01
instead we see:
SH IPV6 INT BRief
FastEthernet0/0 [up/up]
unassigned
FastEthernet0/1 [administratively down/down]
unassigned
Tunnel1 [up/up]
FE80::21D:70FF:FEBE:C190
3FFE:80C0:22C:817F:21D:70FF:FEBE:C190
the host portion of this /64 and of link local is :
21D:70FF:FEBE:C190
that is not correct so there is no communication between the two.
this looks like to be an EUI taken from a MAC address instead
see
http://www.ietf.org/rfc/rfc3513.txt
appendix A.
However, config examples don't show additional commands to force/change the OUI selection for the tunnel interface:
http://www.cisco.com/en/US/docs/ios/ipv6/configuration/guide/ip6-tunnel.html#wp1055566
This may be an IOS issue and I would suggest you to try another IOS image on the router.
ISATAP is based on the presence of the ipv4 address in the less significant 32 bits missing this cause the issue.
Hope to help
Giuseppe