wp_set_post_terms is assigning only the last of several terms to a post
You need send a fourth argument to the function: wp_set_post_terms($post_id, $actor_term_id, ‘actor’, true); Each time the function executes, you’re replacing any existing terms. The fourth argument specifies that you wish to append them. https://codex.wordpress.org/Function_Reference/wp_set_post_terms