Sorry for the delay, I missed your reply.
I added a Boolean variable to the arrow "NewArrow" default to true.
Then to each place the arrow is further manipulated, I checked "Is NewArrow"
Then after it hits the sprite, I change that arrows "NewArrow" value to false. That way only the 1 NewArrow gets adjusted.
(just noticed the arrow on the layout at the start also flys in when you shoot the first arrow. either destroy all arrows on startup, or move it under the layout so you never see it.)
Capx included:
Edit: just realized if you fire many arrows at once, there will be more than one true at a time. (this caused some arrows to go too deep or all the way through.)
You have a solution already started that does work.
Replace my "Is NewArrow" events with your "Pick Top Instance" and it works fine without the variable.