This is what I came up with as per headers in obs. Did some testing, seems okay .
'...
obs = "Dear " & wsVR.Range("G6").Value & "," & vbNewLine & _
      "We have conducted a detailed LP review of " & wsVR.Range("D4").Value & " Store (" & wsVR.Range("D5").Value & ") " & _
      "as on " & Format(wsVR.Range("D7").Value, "DD-MMM-YYYY") & ". " & "Based on the observations, the store is categorized as " & SRating & "." & vbNewLine & _
      "Please find the summary below and request your action plans and corrective measures within three working days." & vbNewLine & _
      "Important Observations noted are as follows-"
Dim flag   As Boolean                         '<- added
Dim head   As String                          '<- added
For Each cell In wsVR.Range("L11:L83")
    If Not IsEmpty(cell) Then
        '----- added ----------------------------------------------------------
        If head <> cell.Offset(0, -11).MergeArea.Cells(1, 1) Then flag = False 'detect if header has changed (new section) then reset flag
        If flag = False Then                  'detect if header has already been added to obs
            obs = obs & vbNewLine & vbNewLine & cell.Offset(0, -11).MergeArea.Cells(1, 1) & ":" 'add header to obs
            head = cell.Offset(0, -11).MergeArea.Cells(1, 1) 'store header
            flag = True                       'set flag for header already added to obs
        End If
        '----- added ----------------------------------------------------------
        obs = obs & vbNewLine & cell.Value
    End If
Next cell
'...
If you still need to use Bold font in the body I suggest Ron De Bruin's site LINK