Update Custom Taxonomy Value for a post based on custom date field

You are passing strings as the second parameter $terms and you have a hierarchical taxonomy. Per the Codex:

For hierarchical terms (such as categories), you must always pass the
id rather than the term name to avoid confusion where there may be
another child with the same name.

If you follow the source, you will notice that your strings get wiped out.

You need to be using term IDs or alter your taxonomy so that it isn’t hierarchical.

You can use get_term_by('name','tax-slug','tax-name') to get the IDs.

As far as getting that update automatically, you will have to do that with Javascript.