Hi branston!
In order to test the situation when there is too much data, you can change some of "S" to "N".
Since the attachment cannot be uploaded due to network problems, please refer to the following code.

Sub Okami()
Dim arrOri, arrRst, d As Object, i&, c, cnt&, rng As Range, r&
Set d = CreateObject("scripting.dictionary")
'--------Search------------------------------------------
arrOri = Columns("b").Find("GROUP 2").CurrentRegion
ReDim arrRst(1 To UBound(arrOri), 2)
For i = 2 To UBound(arrOri)
  If arrOri(i, 3) = "N" Then d(arrOri(i, 2)) = ""
Next i
arrOri = Columns("f").Find("GROUP 2").CurrentRegion
For i = 2 To UBound(arrOri)
  If arrOri(i, 3) = "N" Then
    If d.exists(arrOri(i, 2)) Then
       cnt = cnt + 1
       arrRst(cnt, 0) = cnt
       arrRst(cnt, 1) = arrOri(i, 2)
       Set rng = Sheets("DATA").Columns("b").Find(arrOri(i, 2), lookat:=xlWhole)
       If Not rng Is Nothing Then arrRst(cnt, 2) = rng.Offset(, 1) & ".jpg" Else arrRst(cnt, 2) = "xxxxx.jpg"
     End If
   End If
Next i
'--------Search------------------------------------------


'--------Output------------------------------------------
r = Columns("y").Find("group 3").Row - Columns("y").Find("group 1").Row - 8
Columns("y").Find("group 1").CurrentRegion.Offset(1) = ""
If cnt > r Then Cells(Columns("y").Find("group 3").Row - 7, "x").Resize(cnt - r + 1, 8).Insert Shift:=xlDown
Cells(Columns("y").Find("group 1").Row + 1, "x").Resize(cnt, 3) = arrRst
'--------Output------------------------------------------
End Sub