ok dokie.
1. Easy enough to do. Instead of allowing dragging of items via the option in the game tab. You manually set the drag item inside of the items action tab instead. Seeing as you are wanting it to play a different sound on each item selection then I don't see any downside to you having to create an additional action for this.
2. This involves you creating the item image as an animation instead. You need to create 2 frames. 1 containing the item image & the second containing nothing or a transparent image. You should edit frame 1 & add an execute a script action to the actions list containing...
ActiveAnimations["item_name"].AnimationFirstFrame = 1
ActiveAnimations["item_name"].AnimationLastFrame = 1
...this will force the animation to only loop frame 1.
Inside of your left click or whatever command sets the item, you will add another execute a script action, which is exactly the same as the above code block but you will set the frame number to "2".
Resetting the animation is a little more tricky on item no longer holding... what you could do is store the currently held item name into a value & then have it use said value inside of a reset function or maybe create a loop that runs while item is held that automatically resets item back to default value & unloads loop afterwards when item is no longer held.
I'm not sure which would be best method off the top of my head without testing. So I will not add that part to this thread at the minute.