Building off of jaslake's good work, this uses the .SpecialCells(xlCellTypeConstants).Areas properties to define each section and copy the formulas en masse.

Edit the Select Case code block to define the range of formulas to copy for a given Header.

Sub Copy_Formula()
    Dim rngArea      As Range
    Dim LR           As Long
    Dim rngCopy      As Range
    
    Application.ScreenUpdating = False
    LR = Range("A" & Rows.Count).End(xlUp).Row
    
    For Each rngArea In Range("B22:B" & LR).SpecialCells(xlCellTypeConstants).Areas
          
          Select Case rngArea(1).Offset(-1, -1).Value
              Case "Bond": Set rngCopy = Range("M2:Z2")
              Case "Equity": Set rngCopy = Range("M6:Z6")
              Case "Fund certificate": Set rngCopy = Range("M5:Z5")
              Case "Options": Set rngCopy = Range("M1:Z1")
              Case Else: Set rngCopy = Nothing
          End Select
          
          If Not rngCopy Is Nothing Then
              rngCopy.Copy Destination:=rngArea.Offset(, 11)
          End If
          
    Next rngArea
    
    Application.ScreenUpdating = True
    
End Sub