Welcome to the Horse Forum. I'm sorry you are having problems. I do not know enough about your horse or your riding to know whether you are heavy handed or not or to know if your horse just 'took a notion' and pounced on a gap in your control available with the hackamore (a mechanical hackamore I assume?)
This is what I would do if someone brought me this horse with this history: I would put a short-shanked 3-piece colt bit on him and teach him to give me his head (now called a 'one rein stop').
So, find a short-shanked 'colt bit' with a 'dog-bone', three piece mouthpiece. These little bits have a lot more control in them than a simple snaffle, but they can be used two-handed just like a snaffle. They are a real nice transition bit and a real nice bit to correct problems in.
Go to this old post I wrote on how to safely teach a one rein stop. How we teach a 'One Rein Stop'
You have to teach this over a period of several rides. You are lucky that he still rides good in an arena. You need to teach him to immediately stop and give you his head any time you want it at a walk, trot and a lope. Any horse of any age will learn to do this very quickly if you follow the teaching guide in the link I gave you.
This technique will not only teach him to stop whenever you ask for his head, it will make him go back to riding like he used to. He will start listening to the bit again instead of tuning you out. The comfortable little colt bit is going to be a good bit for you to keep riding him him after he gets back to being responsive. They rehabilitate very quickly with this technique and little bit. It is a very 'forgiving' bit for any rider to use and is what I put on most of my trail horses when they are ridden.
If a horse gets high headed to avoid this bit, (or a snaffle as well), they require a pretty good timing and skill level, but these little 'colt bits' have a big 'tear-drop' rein ring and they can be used with a running martingale. Just do not set the martingale too low. They should be set so that they do nothing until the horse's head goes too high. In other words, they go in a straight line between a well-placed head and a rider's hands.
Any time anyone used a running martingale, they have to be very careful that the martingale ring cannot slip over the rein ring on the bit. Either the rein ring needs to be too big for this to happen (like with the colt bits) or a rubber or leather 'rein stop' needs to be put on the rein between the martingale ring and the bit.
Hope this helps.