Il problema principale e' come individuare una frase. Ti faccio un esempio che usa il punto (e eventuali spazi dopo) come separatore:

codice:
<?php
$string = "Ieri ero a Roma e pioveva. OGGI INVECE IL TEMPO E' BELLISSIMO. Vorrei andare a Milano ora.";

$frasi = preg_split('/\.\s*/', $string);
foreach ( $frasi as $frase ) {
    echo $frase, "\n";
    if ( $frase == strtoupper($frase) ) {
        $string = str_replace($frase, ucfirst(strtolower($frase)), $string);
    }
}

echo $string, "\n";