Hi,
E-commerce sites are littered with canonical issues for so many different reasons. The most common is like this, where there are cross-overs..
Your issues are probably being caused because you have a main Blue Widget page that carries everything (I assume).
Here is one way I would approach your issue... Probably not the best for your circumstance though.
-- Set canonical from Waterproof Blue Widgets to Blue Widgets
-- Set canonical from Alarm Blue Widgets to Blue Widgets
You might want to remove the primary page from Google's eyes as this could be seen as a doorway page.
The second (probably best) way is by targeting the pages a little more closely - of course, this is a little awkward to advise on because I can't see the site. You would need to add a more thorough description to the secondary pages and make sure they are very focussed. Internal links as you have described will also help here with very focused anchor texts. These links I would add high up the page in an introduction text.
I would then create some blog posts related to each product and link through from these too. Try and get the link high up in the copy again. Don't just stop at one though - you want to create hub pages for each and this is the best way to achieve it.
-Andy