Isto me fez lembrar em uma integração entre sistemas, que o campo monetário no WebService era string. No primeiro momento achamos estranhos, depois acreditavamos ser um erro de projeto e até virou piada.
Mas, a piada virou para nós. Como o valor monetário era muito grande na casa antes da virgula, gerava esta incosistência do post, gerando valores errados.
Lição sobre isto, pesquise antes de tirar suas conclusões de uma solução, ela pode estar assim por algum motivo que você desconheça.