Проблема на серверной стороне. 99.9%
Обычно такая шутка - результат редиректа, потому что редиректы POST c кодами 301 и 302 это всегда GET. Есть редиректы 307, 308, они оставляют тип исходного запроса.
Есть еще глубоко спрятанное и неочевидно названное свойство в THttpClient.RedirectsWithGET, там тоже можно поуправлять.
Короче.
1) отключите HandleRedirects и смотрите, что получится реально. Скорее всего будет приходить ответ, что произошел redirect, ищите на сервере, кто редиректит
2) придумайте что выбрать их вышеописанного для решения проблемы