When your horse is not easy to collect try to collect it in a circle and don't jump on a straight line .. through the circle and the bending it is forced to sit more back. Usually it needs some time until your horse has the strength in his hind legs to carry himself and jump in a very calm way.
When you try it in a straight line and he runs forward and jumps flat you support that behaviour instead of building the muscles they need to do it right. Sometimes it doesn't make sense to punish them for something that they can't even do right. so take a step back and try to do jumps in circles so that every jump is nice and collected and you will see that your horse will be exhausted after 10 min.
Maybe have a real collected canter and then when you see a stride he will be on his hocks when you give him impulsion to get over the fence he will not be flat😀
Grid work!!! There is a billion different types of grid exercises you can do. I love 4 trot poles, one stride then two bounce crosses then one stride vertical then two strides then an oxer.
You can try to do circles before your jumps until he is more relax and then jumps!
Maybe try using a pole in front so he learns where to take off
Well I don’t know what you mean but I would pull back and maybe try circling him but also I would reccomend a double bridle... they work very well @amr_gobashy