Я обычно использовал asio :: streambuf и использовал std :: ostream или std :: istream, что-то вроде:
boost::asio::streambuf Stream;
std::ostream os(&Stream);
int SetValue = 0xaabbccdd;
os.write(reinterpret_cast<const char*>(&SetValue), sizeof(SetValue));
Я не уверен, почему ваш код не работает, но если вышеприведенный код работает, то его выполнение может показать некоторые отличия от вашего кода. Кроме того, на какой линии происходит сбой?