heres some things you can try, because if I havent worked my horse in a while and go straight into asking him to do a nice slow collected canter it's hard for him, so I let him on a loose reign canter around the ring a couple of times to stretch out then bring him back to a walk and collect him then go into the canter, that usually works.
But bc ur horse is not broke heres some other things to try, put a pole on the ground and do circles over it so that the horse has to have her head down to pay attention and put the at different spots and canter over them.
The other thing you can try because my gelding used to do the same thing was make a rig, it teaches them to balance themselves, all you do is get some rope and one of those clasps that you can clip the the bit and thread the rope thru the bottom, you tie one piece of the rope to the top of ur girlth right under ur leg, it goes thru the clasp connected to the bit and then the other piece of rope you tie towards ur horses tummy to it creates a triangle from the top of girth to the bit to ur ankel. I know this sounds weird but then the horse is only pulling on itself and learns to balance itself along with learning to keep a frame, after a while when they learn to keep their head down you can take it off, or you can continue to use it and teach the horse to go up into the bit. The great thing is you can use it when you lunge or when ur riding and its so cheap to make. I used this on my horse for about a month or so and now he has to go in a frame or he gets upset because he goes into a frame all on his own.
If ur still confused just ask and I can try to explain it a little more.
"The horse you get off is not the same as the horse you got on; it is your job as a rider to ensure that as often as possible the change is for the better."