a meno che non ho letto male il codice, non saprei proprio, l'unica cosa che mi viene in mente è che tu possa avere un header da qualche parte che fa un location e quindi perdi il $_POST per strada.
hai provato a fare un print_r di $_post, che cosa ti stampa?
[EDIT] ho detto una cavolata: modifica l'enctype del form in "application/x-www-form-urlencoded"[/EDIT]