Your problem is that your if segment that deals with going backwards (or forwards) only applies to the current date and time.
You would need to put in some type of conditional inside of those that would do your calculations based on the current month you're viewing, rather than always on the current actual month. This is assuming that $month will always be available as a variable in the script (since it's starting out in current month/year on a default page load).
if (isset ($_POST['back1']))
{
if ($month == date('m',time()))
{
$date = time() - 269743;
}
else
{
$date = strtotime("$month-1-$year");
}
$month = date('m',$date);
$day = date('d',$date);
$year = date('y',$date);
$first_day = mktime(0,0,0,$month, 1, $year);
$title = date('F', $first_day);
$day_of_week = date('D', $first_day);
}