If you used ACF, you should use their API to interact with fields. There is an update_field() method that does exactly what you are looking for. This method takes 3 parameters:
update_field($field_key, $value, $post_id)
$field_key is the ACF identifier for each field you create. This image, taken from their own documentation, shows you how to get it:

$value and $post_id quite complex, they represent the value with which you want to set the field, and the message that you are updating.
In your case, you have to do something to extract this $post_id . Fortunately, this is what wp_insert_post() returns. So you can do something like this:
$post_information = array( //'promotion_name' => $_POST['name'], 'post_type' => 'wrestling' ); $postID = wp_insert_post( $post_information ); //here the catch
With an identifier, then everything will be easy, just call update_field() for each field that you want to update.
update_field('whatever_field_key_for_venue_field', $_POST['venue'], $postID); update_field('whatever_field_key_for_main_event_field', $_POST['main_event'], $postID); update_field('whatever_field_key_for_fee_field', $_POST['fee'], $postID);
So basically what you are doing is first creating a message and then updating it with values.
I made this stuff in the functions.php file and it worked fine. From what I saw, I think you are using this procedure in some kind of template file. I think that everything will be fine, you just have to make sure that the ACF plugin is activated.
EDIT:
I forgot the promotion_name field. I commented on the line inside $post_information , as it will not work. Instead, you should use update_field() , like the other 3.
update_field('whatever_field_key_for_promotion_name_field', $_POST['name'], $postID);