str_replace rende una stringa e non una variabile.

Probabile non sia piu' consentito. probabile che la variabile del php.ini sia la seguente...

allow_call_time_pass_reference = Off

Verifca le versioni di php.ini dove funziona e dove. no.

Probabilmente risolvi copiando str_replace in una variabile e poi passando la variabile alla funzione.
codice:
$ username = str_replace("'", "''", $username), 
$subject = str_replace("'", "''", $subject),
$message = str_replace("'", "''", $message),
$poll_title = str_replace("'", "''", $poll_title)
L'opzione della variabile a ON la potresti imposatare nel tuo .htaccess tanto per provare.... ma sicuramente sarebbe meglio adeguare lo script.