Probably best to do this:
(Create a container with bat/eyes sprite)
On bat eyes created | move to object bat (or other relative position)
| pin to bat
The problems I can see with your current method, for reference:
● [On collision with] triggers whenever something begins overlapping or is created overlapping another object, so it can happen multiple times (i.e. multiple bats can overlap and cause strange behavior)
● If the objects aren't in a container they can pick other instances. That is to say, bat1 can have bateyes2 pinned to it.