CSV delimitado grueso en .NET

Tengo un archivo de texto que está en un formato separado por comas, delimitado por" en la mayoría de los campos. Estoy tratando de incluir eso en algo que pueda enumerar (Colección genérica, por ejemplo). No tengo control sobre cómo se genera el archivo ni el carácter que usa para el delimitador.

En este caso, los campos están separados por una coma y los campos de texto están encerrados en" marcas. El problema con el que me encuentro es que algunos campos tienen comillas (es decir, 8" Bandeja) y se recogen accidentalmente como el siguiente campo. En el caso de los campos numéricos, no tienen comillas a su alrededor, pero comienzan con un signo + o - (que representa un número positivo / negativo).

Estaba pensando en un RegEx, pero mis habilidades no son tan buenas, así que espero que alguien pueda tener algunas ideas que pueda probar. Hay alrededor de 19,000 registros en este archivo, así que estoy tratando de hacerlo de la manera más eficiente posible. Aquí hay un par de filas de datos de ejemplo:

"00","000000112260   ","Pie Pumpkin                             ","RET","6.99 ","     ","ea ",+0000000006.99000
"00","000000304078   ","Pie Apple caramel                       ","RET","9.99 ","     ","ea ",+0000000009.99000
"00","StringValue here","8" Tray of Food                             ","RET","6.99 ","     ","ea ",-00000000005.3200

Hay muchos más campos, pero puedes obtener la imagen ...

Estoy usando VB.NET y tengo una configuración de Lista genérica para aceptar los datos. He intentado usar CSVReader y parece funcionar bien hasta llegar a un registro como el tercero (con una cita en el campo de texto). Si de alguna manera pudiera hacer que maneje las citas adicionales, entonces la opción CSVReader funcionará muy bien.

¡Gracias