Vamos começar detectando o item através da tag do mesmo, mas antes vamos coletar uma espada de ferro para usar com exemplo
give @a iron_sword[custom_data={Teste:1}]
Escolha uma tag através do custom_data, agora coloque um bloco de comando Repeat como Always Active (Sempre Ativo) e este comando
execute if items entity @p weapon.mainhand minecraft:iron_sword[custom_data={Teste:1}]
Basicamente, ele vai detectar na mão principal do jogador mais próximo ao bloco de comando a espada de ferro com a tag (Teste:1b)
A idéia é a mesma pro nome, vamos novamente pegar a espada com este nome
give @a iron_sword[custom_name='[{"text":"Teste"}]']
E colocar no bloco de comando Repeat como Always Active (Sempre Ativo) este comando
execute if items entity @p weapon.mainhand minecraft:iron_sword[custom_name='[{"text":"Teste"}]']
Caso esteja fazendo para um modo multiplayer, utilize execute as @a run no inicio do comando para executar em todos
E coloque no lugar de @p o @s para executar no jogador em si