I don't see anything really wrong (e.g., syntax errors) in the code and I was able to compile it (but not to test it on my Arduino, since I don't have the circuit built at the moment). Some suggestions:
1) Set a larger delay, for example:
so that you are actually able to see on the serial monitor if the values of the parameters are really changing. Does the value of "temperature" change? And how much? I ask this, because this brings me to the next point...
2) In your code I see an undefined situation that happens when the "temperature" variable gets larger than "baselineTemp+8".
For example, in my code the last "else...if" condition is like this:
else if (temperature >= baselineTemp + 6.0)
In my experience with coding, aside from Arduino, I learned that is always better to catch all the possible conditions while setting up your "else..if" control expressions, instead of leaving them undefined.
Apart from these tips, if I understood correctly you are in the situation in which output #2 and output #4 are off, while output #3 lights up.
This configuration is not met anywhere in your code, so it's perhaps pointing to some errors/bad connections in wiring the circuit. In this case a photo of the setup might help :-)