Как вариант, сравните то, что реальный браузер отсылает на сервер при ручном выполнении действий, и что отсылает на сервер ваша программа.
Затем смотрите, что именно в их поведении отличается.
Если тело запроса такое же и переменные все на месте - то может быть, HTTP-заголовки, а может быть, сервер замеряет время между отправкой формы клиенту и получением данных от него, и отсекает формы, отправленные слишком быстро.