2 Actions: Append term to Genre unless term already exists and distribute terms to fields if not duplicated

The guessing pattern has to match the source string exactly in that respect that the guessing pattern must not contain more target fields than the source offers.

For the other list:
Here is a thread that deals with the removal of duplicate string parts from a list of words in a string:

Perhaps you could use that to get rid of duplicates and save yourself a number of $if().

Then, instead of the manually numbered genre fields, it may be an idea to create several fields of the type genre which then could be merged and separated with actions that do not need constant maintainance. Have a look at the $meta() and $meta_sep() function as well as the actions to merge and split fields.