It's late, so I am only going to outline the procedure.

Hmmmmm. . . For easier numbering, lets set the Array low index = 1 vs zero
Option Base 1 (at the top of the code page)

When inserting or deleting Rows, always start at the bottom.
So. . . For r = Cells(Rows.Count, "A").End(xlUp).Row to 2 Step -1

A Couple of Constants would be handy
Const AmtCol As Long = 1
Const LblCol As Long = 6

We need to split the labels and count them. For that an Array is perfect
Dim Labels As Variant
Dim LabelsCount As Long


Labels = Split(Cells(r, LblCol), "[")
LabelsCount = UBound(Labels)
NewAmt = Cells(r, AmtCol) / LabelsCount


OK, now copy and insert LabelsCount - 1 times

Cells(r, amtCol).Resize(, 6).Copy
For loop to insert goes here


Edit the Amounts
Cells(r, AmtCol).Resize(LablesCount, 1).Value = NewAmt


The new Labels need an addition step to add the now missing (due to Split) Leading Bracket
For i = 1 to LabelsCount
Labels(i) = "[" & Labels(i)
Next i


and place them as needed
Cells(r, LblCol).Resize(0, LabelsCount).Value = Labels


Rinse and Repeat with
Next r


Hope this helps.

Good Night.