Le date in formato TIMESTAMP corrispondono al formato anglosassone. E non c'è modo di fargli accettare quelle in formato italiano, mysql è fatto così. Probabilmente è per quello che mysql non riesce ad interpretare i valori che gli passi e ti setta tutto a 0.

Personalmente quando si tratta di date uso sempre il formato UNIX, trasformando la data tramite date() in un numero. E' molto più semplice per fare operazioni tra le date (capire quanti giorni ci sono da una all'altra etc).

http://it.php.net/manual/en/function.date.php