OK! After speaking with Erik Eidt (A specialist over at Codementor.io) he has found the issue:
There is missing a "after:=c" at the line "Set d = ..."
Sub ListAreas() Dim a, c, d, typ, FA
Columns(12).Insert
Range("L4") = "Sub Category"
For Each a In rAreas(Sheets("data").[B4])
With a.Columns(9).Cells
Set c = .Find("Competency", lookat:=xlPart)
FA = c.Address
Do
c.Select
If c.Offset(, 1) <> "" Then
c.Interior.ColorIndex = 6 'debug
typ = Trim(Split(c, "-")(0)) & " - " & c.Offset(, 1)
Set d = .Find(typ, after:=c, lookat:=xlWhole)
If Not d Is Nothing Then
d.Interior.ColorIndex = 7 'debug
d.Offset(, 1).Copy c.Offset(, 2)
d.Offset(, 3).Copy c.Offset(, 3)
c.Offset(, 2).Resize(, 2).WrapText = True
c.Rows.AutoFit
End If
End If
Set c = .Find("Competency", after:=c, lookat:=xlPart)
Loop Until c.Address = FA
End With
Next a
End Sub
Now that I have added "after:=c" the code now works perfectly.
Thanks again to @mdmackillop and Erik Eidt at Codementor.io