Как вы рассчитываете Content-Length - мыльное сообщение? Это число символов во всем мыльном сообщении?
Количество байтов, а не количество символов, поэтому оно будет зависеть от используемой кодировки текста.
Да. Преобразуйте свое XML-сообщение в строку и используйте длину строки как Content-Length.
(Предполагается, что вы используете восьмибайтовые символы.)