If I'm reading the question correctly, this sentence really is the key to your problems:
the pass original querystring feature relies on the query string being present in the forms post.
In other words, if you have a page:
update.php
and you browse to it with a query string var:
update.php?id=4
and you have a form with the following action:
<form action="update.php" name="form1" method="post">
</form>
the query string is absent when the form posts, so the pass original query string setting does not have a query string to work with.
make sure any query string vars that are passed to the page are posted when the form posts, use the following for the forms action:
<?php echo $_SERVER["PHP_SELF"]; ?><?php echo (isset($_SERVER["QUERY_STRING"]) && $_SERVER["QUERY_STRING"] != "")?"?".$_SERVER["QUERY_STRING"]:""; ?>
example:
<form action="<?php echo $_SERVER["PHP_SELF"]; ?><?php echo (isset($_SERVER["QUERY_STRING"]) && $_SERVER["QUERY_STRING"] != "")?"?".$_SERVER["QUERY_STRING"]:""; ?>" name="form1" method="post">
</form>