Это не TreeView, это ListView с View = LargeIcons. TreeView не является отличным элементом управления в качестве цели перетаскивания, поскольку он скрывает подузлы. Но вы можете решить обе проблемы, реализовав событие DragOver. Проверьте, где находится мышь, разверните и выберите узел:
void treeView1_DragOver(object sender, DragEventArgs e) {
var pos = treeView1.PointToClient(new Point(e.X, e.Y));
var hit = treeView1.HitTest(pos);
if (hit.Node != null) {
hit.Node.Expand();
treeView1.SelectedNode = hit.Node;
}
}