Você pode ter uma incompatibilidade de versão no assembly Types. Este era um problema conhecido entre as versões 10 e 11. Infelizmente, a mensagem de erro não inclui informações sobre a versão, e é por isso que parece um absurdo!
Para contornar isso, você pode desserializar a representação binária do tipo, ou seja, algo assim (se sua coluna de geografia for a primeira no conjunto de resultados):
var geo = SqlGeography.Deserialize(reader.GetSqlBytes(0));
Existem outras soluções alternativas, incluindo fazer um redirecionamento de associação para o assembly.
Mais informações aqui:https://connect.microsoft.com/SQLServer/feedback/details/685654/invalidcastexception-retrieving-sqlgeography-column-in-ado-net-data-reader