К сожалению, подробно сейчас разбираться не могу. Навскидку:
не совсем понятен смысл наследования от Control, да и вообще смысл создания нетекстового лога. По существу проблемы:
1) смущает SetSize, косвенно вызываемый из Restore - насколько я помню, этого делать нельзя, это может вести к сложным рекурсивным петлям обновления экрана;
2) прокрутка в ББ может делаться двух видов:
а) отображение, вложенное в скроллер, имеет большой размер, а уже скроллер его прокручивает. Это просто, т.к. отображению не нужно заботиться о прокрутке вообще;
б) для отображений со сложным содержанием (например, тексты) - размер отображения всегда равен размеру скроллера, показ нужного места обеспечивает само отображение, обрабатывая в HandleCtrlMsg сообщения Controllers.PollSectionMsg и SetSectionMsg.
Можно реализовать такую логику. Был уже подробный пример - см. веткуviewtopic.php?t=241.
Однако я сейчас не уверен, что у Controls нет уже своей обработки этих сообщений, а Вы наследуетесь от него - проверьте!