There is a lot of different ways you could get your project working. It's a shame you cant link a capx (Dropbox is a good thing for this, but Im not sure if they allow new users to host anymore).
Anyway, it all works until they go to throw a ninja star (So you have narrowed it down to event 12). In certain games you might actually want all the baddies to shoot when one spots the hero, you just need to be more specific with your conditions so that only 1 baddy is picked.
At the moment event 12 reads as:
When a raycast hits the ninja -> Baddy object throw ninja star.
What is the link between the individual raycasts and the baddies? How do we know that this raycast is thrown by that baddy? We dont, and this is the problem. Remember unless your specifically targeting 1 'instance' of an object you will target all of them.
At this point again there is no wrong answer to how you will do this, just choices. If you only have four ways of movement - what I would do is attach some bar objects to the baddies that signify there range (its the the same concept as the invisible camera object - if your not familiar, the only difference is that we want the bars to all start from the base of the baddy).
This way when the hero overlaps one of these range objects you can easily target the right baddy to throw the ninja star. Below is meant to be a single event with two conditions in it.
Eg.) Ninja is overlapping Enemy range
Baddy is overlapping Enemy range -> throw as in other event
You could have any number of baddies this way (with 4 times as many instances of the 'Enemy range' tiled-background object). The above event will only throw a ninja star when both the Baddy and Ninja is overlapping the same Enemy range object.
Wow massive rant - I hope others can learn from this as well! :)