The problem arises when you get to the last paragraph and then assign notag as the range for the next paragraph (since there isn't one).
An alternative coding that deals with this is as follows. The coding is quite clumsy because it loops onto paragraphs the code just inserted but it should work for you.
Code:
Sub AutomaticNumbering()
Dim manum As Field
Dim rgpara As Paragraph
Dim myRange As Range
Dim notag As Range
Dim i As Single
For Each rgpara In ActiveDocument.Paragraphs
Set myRange = rgpara.Range
If myRange.Style = "Text" Then
Set notag = myRange.Next(Unit:=wdParagraph, Count:=1)
If notag Is Nothing Then
myRange.InsertParagraphAfter
Set notag = myRange.Paragraphs(2).Range
notag.Style = "MNS"
notag.Collapse Direction:=wdCollapseStart
ActiveDocument.Fields.Add Range:=notag, Type:=wdFieldAutoNumLegal, _
Text:="\Arabic *\e", PreserveFormatting:=True
ElseIf notag.Style <> "MNS" Then
myRange.InsertParagraphAfter
Set notag = myRange.Paragraphs(2).Range
notag.Style = "MNS"
notag.Collapse Direction:=wdCollapseStart
ActiveDocument.Fields.Add Range:=notag, Type:=wdFieldAutoNumLegal, _
Text:="\Arabic *\e", PreserveFormatting:=True
End If
End If
Next
Set notag = Nothing
Set myRange = Nothing
Set manum = Nothing
Set rgpara = Nothing
End Sub