Creo que el problema es porque cuando tienes en una tabla varios campos definidos cómo timestamp, de forma automática el primero se actualiza al hacer un insert o un update, sin especificar un valor.
Es decir si no pasas un valor para ése campo, se actualizará con la fecha actual en timestamp, y cómo tu no quieres actualizarlo pués hay está el problema.
Supongo que la solución sería poner el campo de fecha de modificación ANTES que el de fecha de creación, y de forma explícita desde PHP a la creación del registro pasar a la sentencia SQL el valor timestamp al registro que ha de contener la fecha de creación.
De esta forma, cómo sabes que Mysql actualizará sólo el primer campo timestamp que encuentre al ser este el de modificación, pués se solucionaría.
No se si me he explicado muy bien, pero más o menos se trata de que si al hacer UPDATE o INSERT no especificas una valor para el primer campo TIMESTAMP que haya en la tabla, MYSQL lo pone directamente. Por eso al poner el de modificación ANTES creo que se solucionaría. De todas formas en esta página tienes información:
http://dev.mysql.com/doc/mysql/en/ti...p-pre-4-1.html
Salu2 ;)