You should be able to make the edits to your shipping rules directly from within eCart. On the shipping tab where you have the rules defined just edit one, and add in another condition to the trigger. For the new condition you will choose 'based on a session variable value' and then specify your pick_up session variable and look for the value to not equal 1.
So long as you are setting this session variable correctly and you have this extra check in each of the charge rules it should suppress shipping charges from showing. As a test add an item to the cart and trigger one of the shipping rules, then check the box and submit the form to set the session variable correctly. It should then stop the shipping from occurring. Let us know what you encounter.