After breaking the block and the custom name does not remain, I'd assume you can simply use PlayerItemHeldEvent and if your desired block is held and does not have the custom name... set the custom name for the held item. If you want an example code feel free to ask if you don't understand.
PHP: public function onItemHeld(PlayerItemHeldEvent $event){#Variables$player = $event->getPlayer();$hand = $player->getInventory()->getItemInHand(); if($hand->getId() == 21 && $hand->getCustomName() !== "the original custom name"){ $hand->setCustomName("the original custom name"); $player->getInventory()->setItemInHand($hand); }}