When you used the I2C scanner was your device detected. Oh wait, did you know there is a sketch to see if a I2C device can be found? My bad in assuming, sorry. Do an internet search using words "arduino i2c scanner" let us know what the scanner reports.
Adding a 4.7k pull up resistor seems to have done the trick.
However now the readings seem to be quite unreliable, the sensor sometimes reads what seems to be accurate other times it starts saying that its above 60 C and below 15 C in the next second. Any idea what is causing the flipping behavior?
This might not be the cause of the problem, but it is a problem for the logic of your code anyway. Let us suppose that the temperature is 0.5. It would satisfy both conditions to light up green and blue pins simultaneously.
It is not common practice to have LED's on the I2C lines. If you want to see LED's blinking at 400Khz then tap the lines with some sort of isolation circuit and then drive the LED's. Right now the LED's are a load on the I2C line. I2C was not designed to drive LED's.
If you insist on seeing LED's flash at 400Khz then expect issues.