It doesn't matter where the checkbox element is added on the checkout page as long as it is within the checkout form.
Same for the hidden form element on the confirm page, as long as it is part of the form that exists on that page.
The Session code should be added with all of the other set session value behaviors on the confirm page.
The shipping is showing because of the way you have it triggered.
if you do not have the option for "<>" when creating the rule use "!="