when you add a new form field to the checkout page, you will need to do 2 things for the data to persist on other pages.
1) on the confirm page, there is a collection of hidden form elements near the bottom of the page, add a new hidden form element with the name as the new element added to the checkout page, and set it to catch the value posted from the checkout page:
<input type="hidden" name="howDidYouHear" id="howDidYouHear" value="<?php echo ((isset($_POST["howDidYouHear"]))?$_POST["howDidYouHear"]:"") ?>" />
2) On the confirm page, add a set session value behavior to catch the value of the new form element. On the server behaviors panel, click the plus button and select eCart -> General -> Set Session Value.
Set the Trigger to any form post
set the name to the same name as the form element: howDidYouHear
click the lightning bolt next to value and select the howDidYouHear form element from the bindings collection.
Now the howDidYouHear session variable will be set so that it can be used in the email.