You could detect when the signs break separately.
This means you would need to repeat it for every sign, but I wasn't able to figure out another way.
Minecraft 1.12.1
Make scoreboard to track the signs:
scoreboard objectives add EasterEggs dummy
You would detect when the block that the sign is in is air:
execute if block 1 56 -4 air run scoreboard players add @a EasterEggs 1
This command block is repeating and needs Redstone, it will execute at the sign when it's air, then the following command will be a conditional chain command block. This will tell the player the score:
execute as @a run title @s actionbar ["",{"text":"You Found "},{"score":{"name":"@a","objective":"EasterEggs"}},{"text":"/15 Easter Eggs!"}]

The last command will be in another conditional chain command block, removing the Redstone that powers the Commandblock chain:
setblock 5 56 -4 air
The coordinates are simply next to the repeating Commandblock.

Here is a demonstration:

Then for the sign:
Minecraft 1.20:
I used this command to give myself a sign that replaces itself with air when clicked:
give @p oak_sign{BlockEntityTag:{front_text:{messages:['{"text":"Easter egg","clickEvent":{"action":"run_command","value":"setblock ~ ~ ~ air"}}','{"text":""}','{"text":""}','{"text":""}']}}} 1
You can change the text to your liking within the "text":"<Your text here>"
parts.
Minecraft 1.19:
/give @p oak_sign{BlockEntityTag:{Text1:'{"text":"Easter Egg","clickEvent":{"action":"run_command","value":"Setblock <x> <y> <z> <block>"}}'}} 1
And for each line, you do Text<n>
where n
is the line you want your text to be, ex: Text1:'{"text":"","clickEvent":{}}',Text2:'{"text":""}',Text3:'{}'