Old thread, I know, but I just had to deal with this problem, and thought I'd share my solution: a function that will move an object to a group.
Public Function SetNavPaneGroup(strObjName, strGroupName)
Dim strSql, idObj, idGrp, db
Set db = CurrentDb
idObj = DLookup("Id", "MSysNavPaneObjectIDs", "Name='" & strObjName & "'")
idGrp = DLookup("Id", "MSysNavPaneGroups", "Name='" & strGroupName & "'")
If DCount("*", "MSysNavPaneGroupToObjects", "GroupID = " & idGrp & " AND ObjectID = " & idObj) > 0 Then
strSql = "UPDATE MSysNavPaneGroupToObjects SET GroupID = " & idGrp & ", Name='" & strObjName & "' WHERE ObjectID = " & idObj
db.Execute strSql, dbFailOnError
Else
strSql = "INSERT INTO MSysNavPaneGroupToObjects ( GroupID, ObjectID, Name ) " & vbCrLf & _
"VALUES (" & idGrp & "," & idObj & ",'" & strObjName & "');"
db.Execute strSql, dbFailOnError
End If
RefreshDatabaseWindow
Set db = Nothing
End Function
Enjoy.