Matthew,
I have the same kind of situation, here's how I do it, with a VPN to two remote central locations over an internet circuit:-
1) Run EIGRP
2) Encapsulation in GRE Tunnels
3) Pass dynamic routing traffic thru Tunnels over VPN connections.
4) Configure hello/dead timers on tunnels
5) Weight the tunnels, with delay and bandwidth metrics to determin primary & secondary routing paths when boths tunnels are active.
6) Tune EIGRP to 1 second hello, 3 second dead.
If any intritupion to the network occurs over the primary link - the seconday takes over inside 3 seconds.
You could use the same in your situtation.
HTH>