As Alnitak said anything TCP-backed is quite bad for latency (IP does not need the reliability that TCP offers, and it comes at a price.). Typically PPP over SSH or PPP over HTTP are mostly useful to be able to eventually pass firewalls.

Pings are done ususally via the ICMP protocol, and therefore are usually dropped the last by overloaded routers that implement early drops. It would be interesting to see if you experience drops with UDP or TCP "pings" also. Packets dropping are quite common on the internet.

Do you know if you're dropping GRE packets or packets tunneled withing the GRE tunnel? With any sort of tunnel, it's not uncommon to run into MTU problems with just about any kind of tunneling. MTU problems can be hard to diagnose because smaller packets (like default pings) pass through the tunnel just fine. You'll only see problems with larger packets and generally only if the application or system is setting the DF (Don't Fragment) bit. Which unfortunately is pretty common.

You can test end-to-end for what's the smallest MTU across the network path by using pings with a large packet size and the DF bit set.

On Windows you can set the DF bit with the -f option and set the packet size with the -l option like this:

ping -f -l 1450

On Linux, you set the DF bit with the "-M do" option and set the packet size with the -s option, like this:

ping -M do -s 1450

You didn't say what you're using for the GRE endpoints.. If they are Cisco routers, this link is pretty good. If not, search google for GRE MTU issues and you'll find a ton of information.