In this case a large number of the alarms were for robots that were inactive. When robots are inactive, discovery waits 30 days for the robot to come back online and update the alive_time in CM_COMPUTER_SYSTEM before it is deleted from the of devices (CM_DEVICE and CM_COMPUTER_SYSTEM).
The wait before deletion is controlled by discovery_server key expire_time which is set to a default of 30 days. Since those devices are deleted from inventory, any alarms that the robot is still generating because of its inactive state will be stored in the DB but will not be associated to a device (since there is no longer a device to associate the alarm to).
This is what caused the mismatch in the customer environment as the alarms in the tree view will only list alarms associated to devices in the inventory.
To resolve the difference, the customer can do one of the following: 1/ If the servers/devices are to be decommissioned then deactivate and shut down the robots and acknowledge any outstanding alarms. 2/ If the servers/devices need to be continued to be monitored then activate again so that they can be once again added to the inventory and the alarms are able to associate.