wp_insert_post creating duplicate post with Safari

You could try to use nonces (http://codex.wordpress.org/WordPress_Nonces) in your requests,so even if the request is being sent many times, only 1 time is being saved.

You can add in your form this line

<form method="POST">

    <input type="hidden" name="nonce" value="<?php echo wp_create_nonce( 'form-nonce' );?>" />
    ....
</form>

and in the code where you check :

 $nonce = $_POST['nonce'];
 if ( ! wp_verify_nonce( $nonce, 'form-nonce' ) ) {
     die( 'Security check' ); 
 } else {
     //Your code here
 }