%col.getDataBlock().Health -= getRandom(1,5);
This and various other statements mean you're checking/subtracting from the Health variable of the shared data of all blocks of that ore, not the specific brick you're hitting. (e.g. hit a copper ore, all copper ore loses 3 health)
%col.Dissapear(%col.getDatablock().regrowTime);
Should be "disappear" - this will just cause a console error and not make the brick actually disappear.
What messages/particle effects do you see in-game when you hit a block?
You're not calling Parent::onCollision somewhere in your modified one (the default projectile collision function) so the pickaxe e.g. won't deal damage or possibly do other neede things.