Firstly I don't think this is possible using a checkbox as I don't think unbound checkboxes will work in a continuous form.
My solution would be as follows. I got it working with the TagList form as a child of the Product form but there are other ways.
first create a query 'qryProductTags' on the ProductTag table which selects all records which match the product currently selected in the Product form.
Then create a second query - Tag table left outer join (Join type 2 in Access) qryProductTags. Include in the output from this query the TagID, TagName and the fkProductID
This query should now select all the records in the Tags tabel and if a tag exists in the ProductTags table for the current Product it will show the ProductID, otherwise this field will be null.
Use this second query as the record source for the Tags subform. Then attach an event (double click tag name) to run a query to either insert or delete a record in the ProductTag table depending on whether the value of the fkProductID field in the Tag list is null or not.
You can use conditional formatting on the TagList form to show the selected tags or use a separate form to display the tags for the current product.
I hope this makes sense.. You can find a 'quick n dirty' working example here if that helps as I can't see a way to upload a file here: https://drive.google.com/folderview?id=0B0J_JolN6f8GOXpKVVZJTHVJTWM&usp=sharing