For Hack :

I have no idea what you mean by identifier. What VB6 limit of "identifers" have you met?
Project Limitations

A single project can contain up to 32,000 "identifiers" (any nonreserved keyword), which include, but are not limited to, forms, controls, modules, variables, constants, procedures, functions, and objects. Note that the actual number of identifiers is limited to available memory.
For RhinoBull :

How does each control array get loaded?
Each control array has been created at design time so they get loaded when the container form gets loaded.

Was lblEtiquette(9) created at design or runtime?
lblEtiquette(9) was created at design time. The program corresponding to the VB6 project never adds or removes controls at runtime. But sometimes it makes controls visible or not.

Check Tab_Click event (or whatever applies) to see what's going on when user changes tabs.
I would search (within the code) for Load and/or Unload to see how controls are loaded/unloaded.
I tried to debug within event routines but each time the bug does not raise.
I do not think that event debugging is reliable in VB6.

Then I wrote "Debug.Print" statements inside some event routines such as : Form_Load, Form_Unload, event routines offered by the tabbed control, ...
The "Debug.Print" statements depended on the following test :
Code:
If (lblEtiquette(9) Is Nothing) Then
Unfortunately the bug does not raise again.