If the horse has a bouncy canter and is not "through" (in other words using it's back) the rider bounces more. So to compensate you have roached you back - let's fix the canter instead.
As you start your warm-up get the horse using it's back by going long and low. This means (to look at) the nose is on the vertical and the neck is arched on a long rein while the horse is marching forward in a steady rythmn. Once you have that start with the outside rein WITHOUT LEANING FORWARD, and shorten the outside rein by squeezing (like a sponge) the outside rein until horse brings head up. When head comes up (even partially) shorten outside then inside rein so you have contact with the horses mouth (horse should NOT be heavy - if so push forward with legs/seat then repeat rein squeezing ).
Repeat until reins are normal riding length and back remains UP under your seat. If at any time you loose the back go back to long & low and repeat this sequence until you can perform a working walk while keeping horses back.
Next you'll ask for trot. Keeping outside rein (with riders elbows ON your waist) lightly squeeze horse forward into trot. Do not allow head to come up during trot transition - if it does go back to walk, get back and repeat until upwards transition is good.
Once you have a decent trot with back connected (you should easily be able to sit it if you have the back and do NOT lean forward), then perform same exercise at canter.
I doubt the lack of having the horses back is just in the canter - probably just worse there. If at any time in any gait you loose the back return to long & low to getthe back then use the same exercise to bring the head up as described above, only this time in the gait (Walk, Trot or canter) that you're already in.
6 months of this and you'll have a different horse and won't feel the need to roach your back.