Thanks Kleinstein for your comments
The capacitors C10 and C14 are perfectly fine and do not cause oscillation. Usually they should be same size, so more like 1 nF both.
I tested some values for C10 and C14 and I don't know why but I was getting the output to oscillate, removing both caps solved the problem, that's why I added that note. I will do some more tests tomorrow, maybe I made a mistake somewhere else.
There is no need for D5/D6 - the OP has the same supply as the µC, so no higher voltage expected here.
Yes, you are right those zeners can be omitted.
C15 at the fan control is a little odd. For just on/off use it would be more like a problem. For linear control, it would need another resistor at the transistor (at the emitter or base) to get more voltage swing to work with and the transistor likely needs to be a little higher power for linear control.
I tried to use pwm and a MOSFET to control the speed of the fan, it worked but the pwm switching caused too much noise in the circuit so I added C15 to make a low pass filter and replaced the mosfet by a BJT to try to do a linear control. The idea is to change the fan speed proportionally to the temperature on the heat-sink.
It is a little odd to use an HC595 shift register for the 5 lines to the LCD - the more normal way would be having enough pins at the µC.
There may be enough pins, when using those for ISP. The CAL switch might use a different way.
When I started drawing this schematic I used another micro which had less pins so I applied this solution with the shift register, when I decided to use only smd parts I changed the µC and I kept the hc595 to test this alternative. But yes, the circuit could easily be change to accommodate the extra lines to the lcd.