H.W.
Just a question: what would happen if you just flat-out ignored him when he talked back? I would treat that part as a self-indulgent behavior; if no one responds by telling him not to talk back or getting upset, there's no one to argue with. That generally takes the wind out of their sails sometimes.
Namecalling-- he goes to spend time in his room until he's "ready to be around other people". When no one is upset, define for him what that is--kind words, no calling names, a 'regular voice'. The same with tantrums. "You can be mad in your room." Let him blow off his steam with little attention or concern. When he comes out, move on. Don't let the outburst be a topic of conversation or you only reinforce that this is something worth doing because he gets attention for it. If you need to address his blow-ups, use a very calm voice and tell him "I will be ready to listen when you can talk to me in a voice like this."
I wonder (not an excuse for the behavior) if he's upset that you are expecting a new baby. Did he also start kindergarten this year? That would be a lot of big transitions for him.
I agree with the idea of some time each day exclusively for him. This worked really well for several people I know who had kids who were acting out.
I also believe that you can give good choices and consequences for not following directions. For example, after you've asked him to pick up his toys and he refuses, you can give him a choice: "you may put your toys away or I will need to put them in the garage until you can take care of them".
If it's any consolation, when my sister and I were 7 and 5, we made life pretty tough for my pregnant M.. She was exhausted and didn't feel we needed step-by-step direction, so she introduced the Saturday Box. Each night, we had thirty minutes to get ourselves in pajamas and pick up our room. When the timer went off, she would go through our room and EVERY toy that wasn't put away went into the Saturday Box. It only took a couple weeks before we had our room spotless.