You have four lists. One is the master list and the others are specialty lists. There is no guarantee that a person will be added to anything but the master list, and may be added to only one of the specialty lists. However, when you do a create_assignment, you remove the person from every specialty list. I suggest you either test to see if the person is in a list before doing the remove, or put each remove into a try/except block. Probably more concise if you just do the test.
if micleft_assign in mic_list: mic_list.remove(micright_assign)