Another consideration from memory...
...Assuming no hardware issue, and assuming no code that "initializes" the array, does the "CompactLogix" have a CompactFlash memory card (older model) or an SD card (newer model)?
A memory card can be configured to load a copy of a project file on powerup into the controller's memory. This copy could have certain zero tag values, or indeed any valid tag values. The memory card will also take load priority over a project marked valid in the backed up RAM.
If code, then another (outside) possibily on the memory card...
In v16 or higher controllers, there is also the option to use code to read just tag values from a memory card to user selectable tags. This would require the controller to go to Run Mode first and then execute the "read" code. It is possible that such code could be executed on first scan. But more often I see initialization values are just done directly in code, without the need for a memory card. Unless more than one memory card is being used to load recipe type tag values, rather than say from a HMI or DCS/SCADA system.
Regards,
George