Intentando seguir tu código me ha quedado esto que parece funcionar, aunque seguramente se puede mejorar.
Código vb:
Ver originalOption Explicit
Private Sub Form_Load()
Dim x As Integer
Dim nomfig As String
Image1(0).Picture = LoadPicture("fg2.jpg")
Image1(0).Tag = "fg2.jpg"
Image1(1).Picture = LoadPicture("fg0.jpg")
Image1(1).Tag = "fg0.jpg"
Image1(2).Picture = LoadPicture("fg1.jpg")
Image1(2).Tag = "fg1.jpg"
For x = 0 To 2
nomfig = App.Path & "\fg" & x & ".jpg"
Image2(x) = LoadPicture(nomfig)
Image2(x).Tag = "fg" & x & ".jpg"
Next x
End Sub
Private Sub Image1_DragDrop(Index As Integer, Source As Control, x As Single, Y As Single)
Dim eltag As String
Dim imagen As Object
eltag = Image1(Index).Tag
Set imagen = Image1(Index).Picture
Image1(Index).Picture = Source.Picture
Image1(Index).Tag = Source.Tag
Source.Picture = imagen
Source.Tag = eltag
Dim f As Integer
For f = 0 To 2
If Image1(f).Tag <> Image2(f).Tag Then Exit For
Next f
If f = 3 Then MsgBox "encontrado"
End Sub
Private Sub Image1_MouseDown(Index As Integer, Button As Integer, Shift As Integer, x As Single, Y As Single)
If Button = 1 Then
Image1(Index).Drag
End If
End Sub
Saludos