The main reason the account totals don't match is due to a difference in how Reserved Instance coverage is reported in the two systems. CloudHealth reports using actual reservation usage metrics (accounting for RI float) while AWS generally keeps reservation cost associated to the accounts that purchased them.
The very first thing to do is confirm that the overall total across all accounts adds up. That will ensure there isn't any other issue before starting to look into the account level comparisons. Once that is confirmed, it's important to understand how AWS reports RI cost and usage.
The easiest way to get an idea of how coverage is floating is to navigate to the report REPORTS > USAGE > EC2 RI UTILIZATION and update the report setting to the following:
The Y-AXIS should have the following options selected:
The "Normalized Reservation (NFU)" tabulated report below the graph will show you a breakdown of accounts where reservation value exists. In other words, this represents where the reservations were purchased. In the below example, the red accounts have reservations (with nearly all on the top) and the blue accounts have none:
The "Normalized Usage (NFU)" tabulated report below the graph will show you a breakdown of where the reservation coverage actually took place. The below example is the same set of accounts as above but it represents usage associated to accounts. You'll notice that all accounts are now red because reservation coverage can float to all of them:
AWS generally reports using the costs associated to the "Normalized Reservation" breakdown of reservation value while CloudHealth reports costs based on how float across accounts affected cost represented in the "Normalized Usage (NFU)" report above.
Neither way of reporting the cost and usage is wrong, but CloudHealth determined that reporting based on actual utilization provides a more accurate view of the cost associated to account reservation coverage.