В идеале, если есть некое дефолтное значение, просто в момент использования проверять, если тэга нет, то устанавливать это значение.
Какой-нибудь метод getMyData(ItemStack) который делает эту проверку и который ты везде используешь, так и я делаю.
Не уверен зачем можен быть нужен нбт на стеке до первого использования - максимум чтобы не было проблем со стаканием, но предменты с нбт обыно и так имеют stackSize=1