set lrow outside of the loop
you dont have to constantly reassign it

increment lrow before loop ends

Set Master = ThisWorkbook
    lrow = Master.Worksheets(3).Range("A" & Rows.Count).End(xlUp).Row

Do

    Workbooks.Open (myPath & "\" & CurrentFileName)
    Set sourceBook = Workbooks(CurrentFileName)
    Set sourceData = sourceBook.Worksheets("Form Template")
    
        With sourceData
            .Range("D16").Copy
            Master.Worksheets(3).Range("A" & lrow + 1).PasteSpecial (xlPasteValues), Transpose:=True
        End With
        
        With sourceData
            .Range("D10").Copy
            Master.Worksheets(3).Range("B" & lrow + 1).PasteSpecial (xlPasteValues), Transpose:=True
        End With
        
        With sourceData
            .Range("D13").Copy
            Master.Worksheets(3).Range("C" & lrow + 1).PasteSpecial (xlPasteValues), Transpose:=True
        End With
    

        sourceBook.Close False
    lrow = lrow + 1