Most likely the resistor pack has failed. It forms part of the circuit on the lower speeds but is bypassed for the maximum setting - which is why that is now the only one working.
If you have a Haynes manual, turn to section 3-7 now. If not...
The resistor pack is located behind the fan motor, on the bottom of the heater casing (passenger footwell, under the glovebox).
To remove it: disconnect the wiring plug, take out the two screws securing it and withdraw it from the blower case. This can be done without removing the fan motor, though that will improve access.
It might be worth considering why it has failed. Could be just age, but is there a problem with the motor. Does it sound like it's turning freely? Sometime they can get clogged up so may need a clean out.
This is my repair to my Ducato but same apples to Punto, probably the bushes in the motor are dry putting pressure on the motor and drawing too much current blowing the fuse, This is a fix that will cost about £1. Fuse is 215o https://www.fiatforum.com/ducato/335452-heater-fan-resistor.html