I had to laugh a little when I read this. Both my boys did this...for a VERY short time. He's pushing to see just what he can get away with. If you can figure out a way that works for you to establish that you are in charge in these situations, he will stop.
The tough part is figuring out what will get through to him.
Here's what worked for me:
Stay unemotional. He'll get riled up if he sees you getting upset or anxious.
When he is squirming away in the tub, sometimes consequences can be the best teacher. Others may disagree, but I say a little slide onto the back and choking on the water may be all it takes for him to realize that he needs you to hang onto. You might also try reverse psychology...give him your sleeve or wrist and say "okay, hold on right here so you don't fall down while I'm soaping you up!" Last resort: A stinging swat on that bare butt is definitely merited in dangerous situations. If the situation is something he SHOULD be scared of, then by all means, SCARE him.
The diaper change is a tough one. I, personally, did not have much of a problem...the one time I did, after they did not listen to my firm "NO!" I dished out a swat or two. They quickly realized that squirming around while I was trying to change them was not acceptable. I don't want to have poo streaked all over because they don't want to be still.
In retrospect, I think that a "help me help you" routine might be worth a try. What I mean is, make it a cooperative effort: "Okay, you go get a diaper/your PJ's/whatever. I'll be waiting right here!"...."Whoops! Where are those wipes?"...."Hmmmm....have you seen the powder/Desitin/lotion?"...."What do we do NEXT? That's RIGHT, you lie down right here on your blanket! Good job!"...."NOW what do we do? Oh...good, have to put on the new diaper!"...etc, etc...it give him the feeling of having some control of the situation, and helps you get the job done. This is a good time to talk about animal sounds, colors, ABC's, 123's, sing songs, and otherwise interact with your baby.
I hope this helps a little!