There is no guarantee that a client implementing IGrid<T> does actually use an 2D array T[,] for the implementation. So IMHO you have the following options:
change (or extend) the interface of your
Transformationclass to useIGrid<T>instead ofT[,]extend
IGrid<T>to provide access to underlyingT[,], with the drawback of loosing immutability (which forces any client to use aT[,]internally)