Sometimes dogs can be so frustrating, so I understand your pain here. First, you have to teach Nigel to sit on command. You need a quiet room (no distractions, other people or dogs included), a bunch of treats, and patience. Remember, all commands should have his name before them, to get his attention and let him know that you are talking to him. I recommend keeping training sessions about 15 minutes long, or shorter than that if he can't keep focused that long. You want him to cherish training with you, and cut it short to make him want more. Then next time, he'll be even more eager to please you. Always keep training pleasant, and don't be discouraged. If you're getting upset, Nigel will be upset too, and it will be harder to train him.
So, the commands. You can teach sit by holding a treat up to his nose and bringing it up in an arc, over his head and above his neck. His eyes should follow and his bottom should go down, and at that moment, you should make a big fuss and give him the treat repeating "Sit" happily. Keep doing this, and he will associate "Sit" with sitting. You should start giving him the treat every other time, then every three times, until he sits and saying "Good sit!" will be reward enough for him.
After that, teach him to stay. Start by making him sit and keep him sitting- instead of giving him the treat immediately when he sits, say "Good sit" like usual, wait a few seconds, then say "Good stay," and give him the treat. Start making him wait longer times when he's comfortable with a small wait. Then when he masters that, start walking a little bit away for a little bit of time, then further away for a longer time, progressively getting longer times and longer distances away. That's when you can start adding distractions, slowly at first to make sure he doesn't disobey, because that will make him think he can disobey whenever he wants. Some distraction ideas: Gracie can come in the room, you can have someone knock on the door or throw toys, and as he gets better you should ask friends to bring their dogs and cats over, or just have your friends over. If he gets up, be disappointed and say "No, Nigel, I told you to STAY." This is a big setback if he gets up, like I said, so take it slow and make sure he learns thoroughly, even if it's just a little bit that he learns each time. Repeat the treat-weaning-off process.
This will take a loong timee. For a reliable sit, you might need 2-4 weeks. For a reliable sitting stay, it's even harder, but it can mean a LOT if you can get your dog to stay, distracting him from what he wanted to attack or chase. Staying also makes him focus on you if you want him to come back to you:
To train him to come when called, hold up a treat and wait for him to come over to you. When he does, give him the treat and make a fuss! "Come! Come! Good come, Nigel, come" and so on and so fourth. Keep walking away again, and repeating the process. When he recognizes the word, and when he starts coming reliably, call him from further away. Start calling him with distractions around.
The final test is to have him immersed in distractions, then you walk in the room and say Nigel sit! That's the easiest command so he shouldn't have trouble with that, plus it focuses him more on you so you will have an easier time getting him to obey: Nigel stay! He should have his full attention on you by then, so if you've taken training slowly and thoroughly enough, you should be able to say Nigel come! and he should come to you. Repeat with more distractions. Test him in lots of situations. So when the real thing happens, with a variety of situations under his belt, you can prevent him from getting the chance to be aggressive ever again.
Good luck, and if you need any help, I'd be glad to give you detailed step-by-step instructions for each command, or you can find a variety of videos on sit, stay, and come on Youtube.