I am sure there is a better way, for the master coders out there.....
but
try this:
Sprite = Player
Sprite2 = rail
I gave both the solid behavior.
Player has the drag and drop behavior
and it seems to work better with the Player having the Platform behaviour too.
( all the Platform options 0'd )
.....with the following code:
the sprite never penetrates ( never overlaps the rail )
the order you make the code is important, Event 1 needs to stay at the top
2 and 3 can be swapped ,
play with it to see what works best for you.