With the forehand issue:
Try "wiggling" the reins. Alternate with the inside rein and outside rein. For instance, while keeping the outside rein steady, wiggle the inside rein. Then wiggle with the outside rein while keeping the inside rein steady. You can't do this for very long periods of time because the horse will begin to bend the wrong way, etc. It's just a lot of give and take, back and forth. Also, keeping your hands higher might help. Is your horse in a noseband bridle? If so, he could be taking hold of the bit and taking advantage of it. If your discipline allows this, I'd maybe try a flash noseband bridle on him. But first, try to correct your riding before changing tack.
With the shoulder falling in:
You are on the right track! Use LOTS of inside leg, with your leg position toward the girth. If he doesn't respond well enough to that, try moving your weight to the outside. It's possible you could be leaning with him and not even knowing it. Just like Elana said, go back to basics. These problems are a LOT easier to fix at the trot. Good luck! :)