[eluser]Unknown[/eluser]
From my limited knowledge, I'm not sure that your form is repopulating with $_POST data. Are you using the form helper in your view or repopulating the fields some other way? I can see that you're clearly unsetting $_POST data if the data was sucessfully saved. Not only that, but you're not even passing $_POST data back to the view - you're passing $data, which appears as though it wouldn't contain anything other that 'success' or 'error' vars. Is it possible that because you're reloading back to the same page that your browser is repopulating those fields? If your view really is reloading the $_POST data, what if you try and set those values to null after saving data? (Ie, $_POST['myData']=''
Have you tried forcing no-cache on the page after data is successfully saved?
After 'unset($_POST)', try adding:
$this->output->set_header("Cache-Control: no-store, no-cache, must-revalidate");