Why do you have this:
void Padlock(string &in asItem, string &in asEntity)
 {
     RemoveEntityCollideCallback("stone_hammer_1", "padlock_1");
 } 
When apparently all you create is an UseItemCallback(called when you use the two items via inventory selection and targetting)?
I think 
Your Computer is right about the health part. Setting padlocks health to 0 will replace it with the broken one/break it.
			
 Today I dreamt the life I could live forever. You only know that when you feel it for you know not what you like until you've experienced it.