Try playing around with some different bits. Sometimes that's all it takes to get them more round or on the bit. If he's slow and you want him to move more forward, carry a dressage whip and if you squeeze and he doesn't move forward then give him a little tap. If he bucks at that then just ignore the bucking and continue on like it never happened. Speak to him as well I feel he does something you like praise him if he doesn't something you don't like tell him that with your voice and your seat, hands etc. And then let it go and move on.
I agree with Katrina! Try to get him on the bit with a steady contact! Until you're strong enough, don't do half seat or 2 point it's best to be in full seat. Try collecting the canter as much as you can so the stride is smaller and you feel in control. Also talk to your trainer I'm sure she'd be able to help!
It sounds like he is built downhill, and forcing his head up won't help. Let him put his neck where it comfortable, but keep him on the bit. Keep your hands up and together and keep a steady contact on the bit. Don't yank or force him up with your hands. When he puts his head down and gets away from the contact, you need to learn to get strong and be able to push your heels down and sit yourself in the tack and bring him back to the contact. As you get more and more and more used to him it will get easier or more normal.
I just cant controll the direction and stuff when his head is so low but jf i try and keep it ip he gets angry and either slows down or bucks.. its also hard to controll because i feel like im always being tipped forward