I think the User Guide gives some suggestions for performance issues when dealing with thousands of nodes.
Be sure not to use the undo manager by either not setting GoDocument.UndoManager until after loading, or by setting GoDocument.SkipsUndoManager to true.
For finding, the PartID mechanism uses a hashtable. But I don’t know what key you are using in your table, so you may find that using your own hashtable would be more convenient and efficient.