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
}