I would go for the shave, too. It seems the best bet and only option in this case, considering you said you've bathed him yourself and the dirt is still there.

Also don't try to bathe him TOO frequently, you can dry out the skin and cause more problems