TNBName = ARRAY [untagged] NBNAMESIZE - 1 OF BYTE;
- здесь, строго говоря, тоже надо влепить [untagged]. Хотя память под массив динамически и не выделяется, но тег все равно будет даже у поля записи - например, для работы SIZE() при передаче открытым массивом.
Еще возможно, хотя не уверен, без [noalign] будет 4-байтовое выравнивание на элементы массива. Лучше в данном случае вообще использовать SHORTCHAR.

Buf как раз верен: для системных указателей используется INTEGER.