В КиКаде это сделано подстановкой переменной. Правда, работает
только в режиме редактирования посадочного места. Я в любом из
слоёв могу написать: ${REFERENCE} сколько хочешь раз. И в это место
подставится референс этого компонента. Если мне нужно на множестве
слоёв - ставлю на всех, какие нужно, сколько надо. Ещё, в КиКаде можно в свойствах компонента, в редакторе компонентов, добавлять свои поля. Я, например, всем устанавливаемым компонентам, добавляю поле PartNum - просто нажимаю "+" в табличке параметров компонента и пишу имя PartNum. Теперь это поле можно включить в BOM, поставив напротив него птичку в настройках экспорта. Полагаю, это же поле можно и вывести на шелкографию тоже, написав в футпринте, в слое шелкографии, ${PartNum}.