Output multiple images with variable materials
Have you looked into using Blender's compositor features? You could set up a matte (check out the new Cryptomatte feature in 2.8) for each material and then render the "beauty pass" once with several passes (for diffuse color, specular reflections, etc). In the compositor, you could do color balance and hue-shift and work on each channel one by one.

You can even render a UV pass and swap out the texture in composite, but be aware that this won't affect the color of light bounces.

However, your best option is probably to automate the material changes by using Python. It's a little tough to learn it with a deadline looming, but if you've got experience with coding then Python is your best bet.