First, where the Hosting company is located in Canada affects the taxes that must be collected.
Second, I believe the taxes should be tagged per customer, not per product.
For example, let's say the hosting company was a BC company like mine.
All of our Canadian clients, regardless of their province must pay Federal sales tax (GST).
All BC clients must pay both Federal and Provincial sales tax (GST and PST) - although some clients can be exempt if they are a company that is registered to collect PST as well.
Finally, international clients do not pay any tax.
So if a client is in BC and signs up, they are liable for both GST and PST. If they add a second product, regardless of what it is (well there are some exemptions but nothing that a hosting company would offer) then that second product is also taxed for both GST and PST.
If the client was in Ontario, they would be liable for only GST on their hosting.
That said, I think this should be fairly easy to implement into WHMCS. WHMCS already has federal tax built in - if country = <whatever> then tax at X%. Now just add a second tax with the check based on province, with a configurable rate again.
Both taxes need to be displayed on the Invoice and tracked separately as we do need to remit them separately and clients need to track it separately as well - as some clients can use the tax paid as a credit on their tax remittance.
So the invoice for a BC customer hosted at a BC host would look like:
Website hosting $10
Subtotal: $10
Tax (PST): $0.50
Tax (GST): $0.70
Total: $11.20
And a customer from Ontario hosted with a BC host would look like:
Website hosting $10
Subtotal: $10
Tax (GST): $0.70
Total: $10.70
Just as a note, I am not a tax lawyer or specialist of any sort, I've just been remitting my taxes for 7 or 8 years in this manner as I was instructed to do by my accountant. I realise every province has different rules but I believe it is fairly similar to what I've posted above.