Acredito que seu problema é que sua instrução Update usa Set em um caso e AddToSet em outro. AddToSet é uma operação baseada em array e Set atribui um valor diretamente. Você deve usar AddToSet em ambas as circunstâncias para garantir que exista um array no MongoDB.
O FormatException é porque estamos esperando um array (porque o tipo é List) e, em vez disso, obtemos um documento.