Il problema è che non funziona bene neanche solo con i 3 valori..

Il valore se NULL o meno devi verificarlo con
isset
è inutile fare una cosa del genere
$lazio=$_POST['lazio'];
$valleaosta=$_POST['valleaosta'];
$piemonte=$_POST['piemonte'];
Il valore del post ancora una volte se
non checked è NULL.