I have been using multiple GRE tunnels either manually or with NHRP and had some problems when a tunnel would fail due to an outage. The failover would reset, but connections across the private tunnels would be reset. Cisco phones would reset for example. I seem to have solved this problem by making sure that the maximum MTU for all tunnel paths matches.
For example, one tunnel path has an IPSEC tunnel so the MTU is lower than another path that is purely GRE, perhaps for a backup path. The IPSEC tunnel has a lower MTU. This is fine, but established connections seem to get upset if the MTU drops. It may or not get the unreachables or redirects but regardless some applications seem to think it is better to reset the connection and re-establish over new path/MTU. No big deal for some applications but annoying with the Cisco Call Manager / SCCP phones on ends of the tunnel deciding to reset.