Смотрите. Pchar - это уже указатель. А у Вас ещё и VAR Pchar. Т.е. Ваша DLL-ная функция возвращает через VAR-параметр указатель на строку.

Что и происходит. DLL-ке наплевать на Вами выделенную строку, она просто перетирает параметр указателем на строковую константу Дельфы. И освобождать в конце процедуры ББ Вы уже пытаетесь объект, находящийся в юрисдикции Дельфы.