VBA Macro that finds and replace the column name

Please, try the next way. It will try matching the first array elements on the first row headers and replace the found one with the corresponding string from the second:

Sub ReplaceHeaders()
  Dim shT As Worksheet, lastCol As Long, fndList, rplcList, rngHd As Range, mtch, i As Long
  
  Set shT = ActiveWorkbook.Worksheets("Final Exclusion")
  lastCol = shT.cells(1, shT.Columns.count).End(xlToLeft).Column
  
  fndList = Array("Enter one or more MSOs or ESOs to be excluded.  Separate multiple values using a semicolon.", _
                "Select the datasets from which you wish to exclude these MSOs:", _
                "Select the reason code for the exclusion:", _
                "Submitter's CWSID")

 rplcList = Array("MSO", "SOCS", "Reason's", "Submitter")
 Set rngHd = shT.Range(shT.cells(1, 1), shT.cells(1, lastCol))
 For i = 0 To UBound(fndList)
    mtch = Application.match(fndList(i), rngHd, 0)
    If Not IsError(mtch) Then
        rngHd(1, mtch).Value = rplcList(i)
    End If
 Next i
End Sub