Try the following macro:
Sub Demo()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim xlSrc As Worksheet, xlTgt As Worksheet
Dim c As Long, lCol As Long, r As Long, lRow As Long
'Check that the "Report" sheet exists
For Each xlSrc In ActiveWorkbook.Worksheets
If xlSrc.Name = "Report" Then Exit For
Next
If xlSrc.Name <> "Report" Then Exit Sub
'Establish how many rows & columns are in use
With xlSrc.UsedRange.Cells.SpecialCells(xlCellTypeLastCell)
lRow = .Row: lCol = .Column
End With
'Create & populate a new sheet for each data row on the "Report" sheet
For r = 2 To lRow
Set xlTgt = Sheets.Add(Before:=Sheets("Template"))
Sheets("Template").Columns.Copy Destination:=xlTgt.Range("A1")
xlTgt.Name = xlSrc.Range("A" & r)
For c = 1 To lCol
xlTgt.Cells(10 + c, 3) = xlSrc.Cells(r, c)
Next
Next
'Delete the "Report" sheet
'xlSrc.Delete
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
At present, it leaves the 'Report' sheet intact. When you're happy the code is working as expected, uncomment the xlSrc.Delete line.
PS: It's not apparent where the 'xlsb' fits in, unless your intention is to save the file in that format.