Similar problem here. Apple watch 7 and iphone 12. I have spent countless hours on the phone with apple in the last 5 weeks, I have sent logs, screenshots, installed provisioning profiles, reset the phone and watch, unpaired, repaired, turn health stuff on/off and it still sits at 0 calories for 5 weeks now.
It is a brand new watch since the first person I spoke with said the original watch 5 was bad, so we drove 2 hours to buy a new one, but that didnt solve the problem. The problem is with the itunes account. I proved this by setting up a BRAND NEW account, syncing everything and TADA, it worked as it should. The problem with that solution is losing all the historical data with the old itunes account. I last spoke with and Apple Health support rep 2-3 weeks ago and was basically told they have no idea what the problem is and they will get back to me when they find a solution. I was told to make sure to keep both the watch and the phone up to date (which they are) and hopefully it will automatically fix itself... Not holding my breathe on this one.