Посмотрите на эти вопросы:
Получение размера поля в байтах с помощью C #
Узнать размер объекта .net
В частности, ищите ответ Джона Скита в этих вопросах. Они скажут вам, почему число не будет точным.
Что касается получения оценки, то нет способа сделать это, если нет определенных критериев, которые должны быть выполнены для вашего объекта.
Например, если в кеше имеется много объектов, то при совместном использовании ссылок на некоторые распространенные экземпляры объектов сериализация одного из этих объектов в кэше также сериализует копию этих общих объектов, что приводит к увеличению результатов.