I've got a feeling its because of the variations in PHP version installed. The server that does not correctly execute the code is running PHP Version 4.3.9.

This is actually the portion of code that does not work.

// Function to find browser name
function getBrowser() { 
    $u_agent = $_SERVER['HTTP_USER_AGENT']; 
    $bname = 'Unknown';
    $platform = 'Unknown';
    $version= "";

    //First get the platform?
    if (preg_match('/linux/i', $u_agent)) {
        $platform = 'Linux';
    }
    elseif (preg_match('/macintosh|mac os x/i', $u_agent)) {
        $platform = 'Mac';
    }
    elseif (preg_match('/windows|win32/i', $u_agent)) {
        $platform = 'Windows';
    }

    // Next get the name of the useragent yes seperately and for good reason
    if(preg_match('/MSIE/i',$u_agent) && !preg_match('/Opera/i',$u_agent)) 
    { 
        $bname = 'Internet Explorer'; 
        $ub = "MSIE"; 
    } 
    elseif(preg_match('/Firefox/i',$u_agent)) 
    { 
        $bname = 'Mozilla Firefox'; 
        $ub = "Firefox"; 
    } 
    elseif(preg_match('/Chrome/i',$u_agent)) 
    { 
        $bname = 'Google Chrome'; 
        $ub = "Chrome"; 
    } 
    elseif(preg_match('/Safari/i',$u_agent)) 
    { 
        $bname = 'Apple Safari'; 
        $ub = "Safari"; 
    } 
    elseif(preg_match('/Opera/i',$u_agent)) 
    { 
        $bname = 'Opera'; 
        $ub = "Opera"; 
    } 
    elseif(preg_match('/Netscape/i',$u_agent)) 
    { 
        $bname = 'Netscape'; 
        $ub = "Netscape"; 
    } 
    elseif(preg_match('/Android/i',$u_agent)) 
    { 
        $bname = 'Android'; 
        $ub = "Android"; 
    }
    elseif(preg_match('/iPad/i',$u_agent)) 
    { 
        $bname = 'iPad'; 
        $ub = "iPad"; 
    } 
    elseif(preg_match('/iPhone/i',$u_agent)) 
    { 
        $bname = 'iPhone'; 
        $ub = "iPhone"; 
    } 
    elseif(preg_match('/BlackBerry/i',$u_agent)) 
    { 
        $bname = 'BlackBerry'; 
        $ub = "BlackBerry"; 
    } 
    // finally get the correct version number
    $known = array('Version', $ub, 'other');
    $pattern = '#(?<browser>' . join('|', $known) .
    ')[/ ]+(?<version>[0-9.|a-zA-Z.]*)#';
    if (!preg_match_all($pattern, $u_agent, $matches)) {
        // we have no matching number just continue
    }

    // see how many we have
    $i = count($matches['browser']);
    if ($i != 1) {
        //we will have two since we are not using 'other' argument yet
        //see if version is before or after the name
        if (strripos($u_agent,"Version") < strripos($u_agent,$ub)){
            $version= $matches['version'][0];
        }
        else {
            $version= $matches['version'][1];
        }
    }
    else {
        $version= $matches['version'][0];
    }

    // check if we have a number
    if ($version==null || $version=="") {$version="?";}

    return array(
        'userAgent' => $u_agent,
        'name'      => $bname,
        'version'   => $version,
        'platform'  => $platform,
        'pattern'    => $pattern
    );
} 

// now try it
$ua=getBrowser();
// Make browser and variables readable
$browser = $ua['name'] . " v" . $ua['version'];
$user_agent = $ua['userAgent'];

edit: Clarification, listed here are the outputted error messages (just manages)

Warning: Compilation unsuccessful: unacknowledged character after (?< at offset 3 in /var/www/vhosts/staging.xxxxxxxxx.com/httpdocs/feedback/feedback-accept.php online 150

Notice: Undefined index: browser in /var/www/vhosts/staging.xxxxxxxxx.com/httpdocs/feedback/feedback-accept.php online 155

Fatal error: Call to undefined function: strripos() in /var/www/vhosts/staging.xxxxxxxxx.com/httpdocs/feedback/feedback-accept.php online 159

Just help everyone the data and advice continues to be excellent.

Here is the phpinfo() of the server the script doesn't work on

Without seeing the particular error is fairly hard, however i reckon that the reason is strripos(), that is available only on PHP > 5

Edit after your update: I suspected right. And, incidentally, while searching on here, I discovered this:

Fatal error: Call to undefined function: strripos()

with a code veeery much like yours as well as an recognized solution, you may make reference to that SO question then (make sure to credit the answerers there if you discover it helpful)