ну давай подумаем:
1) есть список
2) есть метод для получения итема из списка
3) падает исключение, что мы ждем тип «такой-то», а нам приходит «string»
Итак, мистер ватсон, я вижу два варианта:
либо список у тебя элементов другого типа, либо метод возвращает что-то не то
сам думай как исправить, код читать полностью не охото)
может кто тут и потратит время)