Може да имате несъответствие на версията на асемблирането на типове. Това беше известен проблем между версии 10 и 11. За съжаление съобщението за грешка не включва информация за версията, поради което изглежда като глупост!
За да го заобиколите, можете да десериализирате двоичното представяне на типа, т.е. нещо подобно (ако географската ви колона е първата в набора от резултати):
var geo = SqlGeography.Deserialize(reader.GetSqlBytes(0));
Има и други решения, включително извършване на обвързващо пренасочване за асемблирането.
Повече информация тук:https://connect.microsoft.com/SQLServer/feedback/details/685654/invalidcastexception-retrieving-sqlgeography-column-in-ado-net-data-reader