You'll want to select all of the items from the JsEquipment table and populate the checked list box off of that. When you build the list, you'll want to do one of 2 things: 1) do a left join of the JsEquipment on the link table so that you can tell what should be checked (if the field is NULL then it should be unchecked, otherwise, it should be checked)
2) you can add all of the nodes to a dictionary (System.Collections.Generic.Dictionary(Of Guid, TreeNode)) so you can access all of the tree nodes later by their primary key. After you have the list populated, you will then need to be set the checked state on the nodes to their initial state... that's why you need the dictionary. Do a join on the link table and cycle through the returned records calling TreeView.SetNodeState(Dictionary(LinkBO.EquipmentFK), True) to check them.
When you want to set the state of a node, you can use SetNodeState(node, true/false), which will set the checked state of the parent/child nodes as well. Don't forget to store off the GuidPK of the piece of equipment in the tag of the node.
Once you have the list populated, you can use the NodeStateChanged event handler... do a .Seek() within the link table and either add or remove a record from the link table depending upon whether the node is checked or unchecked.