Well I eventually figured it out. Don't use keepalives on the Cisco.
I used an ip in a /30 subnet alias for the Snapgear LAN interface and placed the Cisco's tunnel ip address inside that subnet.
Local and remote ip on the Snapgear, map to destination and source on the Cisco.
You then create a static route to the Cisco tunnel ip on the Snapgear with the GRE tunnel as the destination interface. You can then use that ip and gre interface as the destination of any other subnets you need to route over the tunnel.
You will also need to open up the firewall on the snapgear to allow in the GRE traffic.
Pinging the Cisco tunnel ip from the Snapgear didn't seem to work but traceroute did and traffic was passing over the tunnel fine so I didn't investigate that further.
Please keep in mind this tunnel setup is totally unencrypted and not authenticated.