The # assets counts all lines related to virtual machine cost (IP address, VNet, SQL Licenses). The # of VMs counts line items that are associated with the compute cost only.
For the # asset hours vs # VM hours, it is essentially the same explanation. CloudHealth takes the number of hours and normalize them through a period. When looking at a daily interval report, 24 hours = 1 asset and 1 period = 24 hours. If an asset ran 24 hours it is counted as 1, if it runs for 12 hours it is counted as 0.5 an asset.