If you show the events that give a picking issue we may be able to expain what's going on.
Otherwise here's my first idea:
Just have your tiny sprites and give them the drag drop behavior. Then do one event to do this:
On touch
Pick Sprite closest to touch.x, touch.y
--- Sprite: set position to touch.x, touch.y
That would move the Sprite to where you touched, and I'm taking a guess that might let it start dragging. If not then scrap that idea, but if it works you could use a pick by comparison to pick only sprites within a radius.
Your drag n drop and pin idea sounds like it should work, but I'd have to test it otherwise I can't predict what it would do.
An alternate idea would be to not use the dragdrop behavior and do it with events.
global number obj=-1
On touch
Pick Sprite by comparison distance(Sprite.x,Sprite.y,touch.x,touch.y)<64
Pick Sprite closest to touch.x, touch.y
--- set obj to Sprite.uid
Is touching
Pick Sprite by uid: obj
--- Sprite: set position to touch.x, touch.y
On touch released
--- set obj to -1
That should work. Now you can also save the xy offset when you touch and use that when setting the position to keep the relative offset.