for starters you have the usage of str_replace still mixed up.
http://us3.php.net/str_replace
$new_result = str_replace($new_ad, $find_ad, $open_file);
should be:
$new_result = str_replace( $find_ad, $new_ad. $open_file );
The parameters for str_replace are search, replace, subject in your example you're searching for 'NEW AD' and trying to replace it with the result of the get_inner_string function.
Honestly though, this is the thing regular expressions are designed for, especially if the timestamp in "<!-- Begin: AdBrite, Generated: 2008-12-18 16:23:11 -->" changes.
But liked I said previously without seeing whats between those Ad Comments there is no use in trying to guess what kind of regex pattern would be necessary to do this with a simple call to preg_replace()