В чем может быть проблема при передаче контейнера «сложных» объектов по UDP?
https://www.boost.org/doc/libs/1_72_0/libs/seriali...
на русском -> https://github.com/Danchetto/Boost.Serialization/b...
Вопрос:
Как мне передать это по UDP пользуясь unix сокетами?
Сериализовать в непрерывную область памяти, убедиться, что она влезет в UDP-пакет (а у него есть ограничение длины, чуть меньше 64Кб), передать, принять, де-сериализовать в свою структуру.

это все ведь можно представить как набор данных, представить его как void * выделить под данные пол мегабайта, и отправить это все дело на сервер, а на сервере полученные данные скастовать обратно в std::unordered_map <uint64_t, Track> или нельзя так делать?
Нельзя так делать, если не знаешь наверняка внутренней структуры того, что посылаешь. Потому что это твой std::unordered_map -- наверняка не один сплошной кусок памяти и содержит указатели. И когда ты его передашь на другую машину, указатели будут указывать неизвестно куда.