reason why that don't work because you tell _root.SHOT.blah blah.
when you are creating multiple shots with multiple instance names- you got
"SHOT"+ i
so your real instance names are- shot1,shot2,shot3, ect. (you can prove it with a trace statement)
I mean you did it correct with the hitTest where you put "SHOT"+ i hit test . blah blah,
but you left a default "shot" name in the last (gotoAndPlay) statement.
(ps- in case that don't work you can put the hitTest script on the clip that you duplicating. so when you duplicate your shots with mousedown you will have the script inclided on these shot MCs)