Estás usando una geografía dialecto pero usando un CustomType de Geometry en su mapeo. Debe usar un tipo personalizado de Geografía . Algo como:
public class PlaceMap : ClassMap<Place>
{
public PlaceMap()
{
Id(x => x.Id);
Map(x => x.Name);
Map(x => x.Location).CustomType(typeof(MsSql2008GeographyType)); //for SQL2008
}
}
Además, hay algo más que quizás debas hacer. Si su columna espacial tiene un SRID diferente de 0 (cero) y si desea omitir las asignaciones xml de NH, deberá declarar un tipo personalizado como este:
public class Wgs84GeographyType : MsSql2008GeographyType
{
protected override void SetDefaultSRID(GeoAPI.Geometries.IGeometry geometry)
{
geometry.SRID = 4326;
}
}
Y luego úsalo en tu mapeo:
public class PlaceMap : ClassMap<Place>
{
public PlaceMap()
{
Id(x => x.Id);
Map(x => x.Name);
Map(x => x.Location).CustomType(typeof(Wgs84GeographyType));
}
}
ACTUALIZACIÓN:
Debería hacer referencia a NHibernate.Spatial.MsSql2008.dll, y le recomendaría que use el método Dialecto fuertemente tipado en la configuración de su base de datos.
.Dialect<MsSql2008GeographyDialect>()