You say you are doing ask, tell, demand. But are you releasing your aids in between?? If you leave the leg on all the time, or the spur then the aid becomes like the girth to the horse.
You must keep your leg hanging long by his sides and use a light, quick and decisive aid for "ask" and then immediately release. For tell I like to use this light, quick and decisive aid 5-6 times in quick progression like "aksaskaskaskask". Finally for "tell" you really only want to have to use tell once in the ride and you have to find what works best for your horse. With some of them, turning the spur in slightly and giving a kick is good, for others a tap with the whip is good. You MUST make sure however that you are giving in the hand or you will just be slamming them into a closed door, which is where a lot of resentment comes and just causes them to go slower and be more sour.
Every time you use an aid with your leg, you must soften the contact. Every single time. Also make sure that you are always using ask, tell, demand for every single leg aid. And each step gets a softening from the hand during and a release by the leg afterward.
Also, make sure you are balanced in the tack. Some horses, especially those that have been used as school horses, are prone to being slow when a rider is not balanced. It could be possible that the more you are trying to drive him forward, the more out of balance you are becoming and the slower he goes. You should be able to sit in a neutral seat and have the horse come forward from your leg aids.