When you use on drop condition it narrows the picked instances to 1. So when you then say sprite overlapping sprite it is checking if its overlapping itself not the instances that you think are involved in the overlap. This is why your current logic isn't working.
There are a few ways you can fix that, some people use a Family, so when you say Sprite on dropped, is overlapping Family, you can easily pick between the one being dropped which is the Sprite and the one overlapping which is the Family (the Family just contains the same Sprite object).
There is also a system condition you can use called 'Pick nth instance' you can use this to pick the 0 and 1 instance in the overlap, however you cannot use this immediately after the on drop condition for reasons mentioned above.
Also you could identify the one being dropped in some way by setting a variable. If you open up the instances to be picked again then this could work. For example on drop - run a function that inside has sprite overlapping sprite condition, then with a sub event pick the sprite where the variable is set and then you can use actions on it.