First Custom Post Custom Fields Empty After New Custom Post

First of all, save_post has an argument $post_id, so there’s no need to global $post. In some cases, $post might not actually be set (anymore) when you do this, which is probably why it breaks. Second, you should probably check whether you’re storing a revision or not (see below). So your code should look like this:

function save_details( $post_id ){  
    if ( wp_is_post_revision( $post_id ) )
        $post_id = wp_is_post_revision( $post_id );

    update_post_meta( $post_id, "testimonyname", $_POST["testimonyname"] );
}  
add_action('save_post', 'save_details', 10, 1);