It seems that where you place the note makes some difference. I revised your code to allow me to test the behavior in a closed environment as you are. Here i am using VB in ilogic.
Dim oDoc As DrawingDocument
oDoc = ThisApplication.ActiveDocument
Dim drawingView As DrawingView
drawingview = oDoc.Sheets(1).DrawingViews(1)
Dim viewCenter As Point2d
viewCntr = drawingView.Center
oPos1 = ThisApplication.TransientGeometry.CreatePoint2d(viewCntr.X - 3, viewCntr.Y - 3)
oPos2 = ThisApplication.TransientGeometry.CreatePoint2d(viewCntr.X - 3, viewCntr.Y + 3)
oPos3 = ThisApplication.TransientGeometry.CreatePoint2d(viewCntr.X + 3, viewCntr.Y + 3)
oPos4 = ThisApplication.TransientGeometry.CreatePoint2d(viewCntr.X + 3, viewCntr.Y - 3)
Dim oEdge As DrawingCurve
For Each oEdge In drawingView.DrawingCurves
If oEdge.EdgeType = DrawingEdgeTypeEnum .kThreadEdge And oEdge.CurveType = CurveTypeEnum.kCircleCurve Then
Dim oThreadNote As HoleThreadNote
oThreadNote = oDoc.ActiveSheet.DrawingNotes.HoleThreadNotes.Add(oPos1, oEdge)
oThreadNote.ArrowheadsInside = False
oThreadNote.LeaderFromCenter = False
oThreadNote.SingleDimensionLine = True
oThreadNote = oDoc.ActiveSheet.DrawingNotes.HoleThreadNotes.Add(oPos2, oEdge)
oThreadNote.ArrowheadsInside = False
oThreadNote.LeaderFromCenter = False
oThreadNote.SingleDimensionLine = True
oThreadNote = oDoc.ActiveSheet.DrawingNotes.HoleThreadNotes.Add(oPos3, oEdge)
oThreadNote.ArrowheadsInside = False
oThreadNote.LeaderFromCenter = False
oThreadNote.SingleDimensionLine = True
oThreadNote = oDoc.ActiveSheet.DrawingNotes.HoleThreadNotes.Add(oPos4, oEdge)
oThreadNote.ArrowheadsInside = False
oThreadNote.LeaderFromCenter = False
oThreadNote.SingleDimensionLine = True
End If
Next
My goal was to show what the different positions around the part would do. The results of the code above are thus:

As you can see, the behavior appears to be relevant to the selection of the position of the note, and I've been unable to correct after placement.
Here are some other tests:
oPos1 = ThisApplication.TransientGeometry.CreatePoint2d(viewCntr.X - 2, viewCntr.Y - 3)
oPos2 = ThisApplication.TransientGeometry.CreatePoint2d(viewCntr.X - 2, viewCntr.Y + 3)
oPos3 = ThisApplication.TransientGeometry.CreatePoint2d(viewCntr.X + 2, viewCntr.Y + 3)
oPos4 = ThisApplication.TransientGeometry.CreatePoint2d(viewCntr.X + 2, viewCntr.Y - 3)

oPos1 = ThisApplication.TransientGeometry.CreatePoint2d(viewCntr.X - 3, viewCntr.Y - 2)
oPos2 = ThisApplication.TransientGeometry.CreatePoint2d(viewCntr.X - 3, viewCntr.Y + 2)
oPos3 = ThisApplication.TransientGeometry.CreatePoint2d(viewCntr.X + 3, viewCntr.Y + 2)
oPos4 = ThisApplication.TransientGeometry.CreatePoint2d(viewCntr.X + 3, viewCntr.Y - 2)

Best of Luck
---------------------------------------------------------------------------------------------------------------------------------
If you find this reply helpful or insightful, please use the 'Accept as Solution' or 'Kudos' button below.