По поводу первого - просто сделай print serialized_pb должно помомчь
По поводу второго - в общем случае никак. Структура, как таковая, в сериализованых данных не хронится. Сериализованые данные выглядят примерно так
[Tag|Type|Value]
где Tag - это тэг поля (то есть - имя поля ты уже не знаешь, и модификаторы его тоже (required, optional, repeated))
Type - смотри в доках, актуалльные значения 0, 1, 2, 5 (вроде)
При этом Tag и Type идут вместе (Tag << 3 | Type) и закодированы varint-ом (что таакое - смотри в доках)
Самая засада в том, что вложеные messages сериализованы точно так же как и bytes и string, то есть если ты не знаешь, что тут должен быть messege, то только попробовав его разобрать можешь это понять. В общем из сериализованых данных вытащить структуру - частично можно, но востоновить в 100% не получится.