You have some good advice. Given that your horse has no health issues…
i’ll add: does your horse know how to leg yield? Leg yielding out at the canter will fix the falling in. Even if he doesn’t actually leg yield (cross over), he’ll straighten out. He leans in because it’s easy and, I think, you might let him. Your inside leg and thigh can straighten that.
Is he strong enough and are you backing him off of the canter? I used to do clinics with a German woman who was very into FORWARD to straighten the canter and build strength at it. As in, half seat and make your horse go FORWARD down the long sides, come back to handle the corners and short sides (not collection). She shaped the horse’s frame around this forward way of going to build strength over the back. It really worked, I’ve not worked with an American trainer who used this approach.
I recommend having a good rider/trainer ride your horse and canter him, and recommend steps you can take to build strength if everything is OK. Do you have hills where you are? Walking or trotting up them are great. Cavalletti or raised poles, or even poles on the ground will help build strength.
Have someone video you so you can see how you are riding your horse. Backed off? Above the bit? Round over the back? On the forehand?
Lastly, try schooling a small hunter/jumper course in a hunter frame. Get in half-seat, even if you only have a dressage saddle. Give him his head to look up and canter around. Put little (little) jumps in the arena/raised poles/poles on the ground and just canter them. Space some in a canter pole exercise. Once your horse figures out that he has to canter the poles you point him at and you aren’t trying to put him in a frame, does his canter improve?
Canter poles and canter or trot cavalletti will help strengthen any horse.
Having not seen you ride or your horse go, I’m throwing out ideas that may or may not apply!