My, but this thread has gotten long.
If this is still not working, then you should probably start attacking small subsets of the goal.
Make a GRE tunnel from A to B, put an IP address on each end, and then be able to ping across it successfully.
If you're trying to use IPSec to protect the GRE, or anything else, turn that off while getting started.
Your goal is to make this:
Router1 -
create gre tunnel interface "gre-to-R2" with local IP = R1's wan IP, and remote IP = R2's wan IP.
If the IP of Router1 or Router2 is dynamic, then you will not be able to use GRE.
You should use L2TP or PPTP.
Of course, just to make it work right now just to see it, that's fine. When the IP changes, the tunnel will break....
Anyway, step 2 is to put an IP on the 'inside' of the tunnel. (the addresses above are 'outside' of the tunnel)
/ip address add address=10.10.10.1/30 interface=gre-to-R2
On Router2
create gre tunnel interface "gre-to-R1" with local IP = R2's wan IP, and remote IP = R1's wan IP.
Then add IP address 10.10.10.2/30 to interface gre-to-R1
Make sure that in both routers, in the ip firewall filter, input chain will allow packets from the other rotuer's wan IP.
With those conditions met, you should be able to ping 10.10.10.2 from R1 and see the traffic counters showing activity on the interface.
After that works, simply create static routes as discussed previously in the thread.