ti sei perso con il comando e.Data.GetDataPresent , nel tuo caso si tratta di un controllo forms, quindi bisogna utilizzare e.Data.GetData...
questo tutto il
codice:
Public Class Form1
Private m_MouseIsDown As Boolean = False
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Panel1.AllowDrop = True
End Sub
Private Sub Label1_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Label1.MouseDown, LinkLabel1.MouseDown
m_MouseIsDown = True
End Sub
Private Sub Label1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Label1.MouseMove, LinkLabel1.MouseMove
If m_MouseIsDown Then
' Initiate dragging and allow either copy or move.
sender.DoDragDrop(sender, DragDropEffects.Move)
End If
m_MouseIsDown = False
End Sub
Private Sub Panel1_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles Panel1.DragDrop
sender.controls.add(e.Data.GetData(GetType(Label)))
End Sub
Private Sub Panel1_DragEnter(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles Panel1.DragEnter
If e.Data.GetData(GetType(Label)) IsNot Nothing Then
e.Effect = DragDropEffects.Move
Else
e.Effect = DragDropEffects.None
End If
End Sub
End Class
l'ho provato adesso e funge.. 
EDIT: per posizionare l'oggetto nel panel , più o meno si può fare così:
codice:
Private Sub Panel1_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles Panel1.DragDrop
Dim Oggetto As Control = e.Data.GetData(GetType(Label))
sender.controls.add(Oggetto)
Oggetto.Location = New Point(Control.MousePosition.X - sender.Left - Me.Left - (Me.Width - Me.ClientSize.Width), Control.MousePosition.Y - sender.Top - Me.Top - (Me.Height - Me.ClientSize.Height))
End Sub
il problema è ricavare le coordinate del mouse all'interno del panel, ma se si tratta di altre posizioni (annidate) c'è perderci un po di tempo per renderlo funzionante per ogni situazione
EDIT2.. ci sto perdendo un pò di tempo anch'io dato che servirà anche a me, compreso il posizionamento!
per questo, ho creato un metodo nel form che resituisce le coordinate correnti del mouse relative a un controllo x forms
basta copiare questo medoto nella classe del form :
codice:
Private Function GetMousePosition_IntoControl(ByVal Ctrl As Control) As Point
Dim MousePos As New Point(Control.MousePosition)
Do While Ctrl IsNot Nothing
MousePos = Point.Subtract(MousePos, Ctrl.Location)
If Ctrl.GetType = Me.GetType Then MousePos = Point.Subtract(MousePos,
New Point(Me.Width - Me.ClientSize.Width, Me.Height - Me.ClientSize.Height))
Ctrl = Ctrl.Parent
Loop
Return MousePos
End Function
e quindi sarà chiamato nell'evento del drag and drop, così ..
codice:
Private Sub Panel1_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles Panel1.DragDrop
Dim Oggetto As Control = e.Data.GetData(GetType(Label))
sender.controls.add(Oggetto)
Oggetto.Location = Me.GetMousePosition_IntoControl(sender)
End Sub