Are you including a line of code to only activate if the item is equipped? The entire script should look like this:
Code:
~ If not equipped get out now!
doneif (field[gIsEquip].value <> 1)
#competencebonus[hero.child[kListen], -1]
Edit: sorry. Apparently I glossed over the original post. could be timing. Make sure you set that to something other than the default. Pre-Attributes / 1000 should work fine.
Also make sure there aren't other competence penalties being applied by other things as they won't stack. If it still won't work, please provide the data file and I'll take a look.