GB,
I was aware the fact that the rows found in each sheet do not match with the row numbers in the Trackt sheet. I am still trying to get around the problem. The code copies when it finds match in to the next empty cells in track column C, instead of aliening with the row number. In the mean time, I have added a new line, and see if this helps.

Sub find_copy()
Dim c2 As Range, c As Range
With Sheets("Track")
    .Range("C2:C" & .Rows.Count - 1).Clear
    For Each c2 In .Range("B2:B" & .Cells(Rows.Count, 1).End(xlUp).Row)
        For Each ws In Worksheets
            If ws.Name Like "Course*#" Then
            Set c = ws.Columns(2).Find(c2, , xlValues, xlWhole)
                If Not c Is Nothing Then
                 c.Offset(, 3) = "Found"
                 c2.Offset(, 3) = "Found"
                c.Offset(, 1).Copy Sheets("Track").Range("C" & Rows.Count).End(xlUp).Offset(1)
                End If
        End If
        Next ws
   Next c2
 End With
End Sub