A layer can be accessed like this: oCurve.Segments.Item(1).Layer. Changed your code a bit, check if it works.
Sub main
Dim oDDoc As DrawingDocument = ThisApplication.ActiveDocument
Dim oTM As TransactionManager = ThisApplication.TransactionManager
Dim newLayer As Layer = oDDoc.StylesManager.Layers.Item("NOVA")
Dim newTM As Transaction = oTM.StartTransaction(oDDoc, "ChangeCurvesColor")
Dim oSB As SurfaceBody
For Each oSheet As Sheet In oDDoc.Sheets
For Each oView As DrawingView In oSheet.DrawingViews
Dim oRefDoc As AssemblyDocument = oView.ReferencedDocumentDescriptor.ReferencedDocument
Dim oRefDef As AssemblyComponentDefinition = oRefDoc.ComponentDefinition
Call ChangeCurvesView(oView, oRefDef.Occurrences, newLayer)
Next
Next
newTM.End()
End Sub
Private Function ChangeCurvesView(ByVal oView As DrawingView, ByVal oOccs As ComponentOccurrences, ByVal newLayer As Layer)
For Each oOcc As ComponentOccurrence In oOccs
If oOcc.Name.Contains("TEST PART") Then
For Each oSB As SurfaceBody In oOcc.SurfaceBodies
If oSB.Name = "NOVA" Then
Dim oCurves As DrawingCurvesEnumerator = oView.DrawingCurves(oSB)
For Each oCurve As DrawingCurve In oCurves
Try
oCurve.Segments.Item(1).Layer = newLayer
Catch
End Try
Next
Continue For
End If
Next
End If
If oOcc.SubOccurrences IsNot Nothing Then
Call ChangeCurvesView(oView, oOcc.SubOccurrences, newLayer)
End If
Next
End Function