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