Java (OpenJDK 8), 134 bytes
a->{int b=a.length,i=0,j=0;for(;i++<b;){for(;j<b;j++){if(a[j].length()!=b||a[i].charAt(j)!=a[j].charAt(i))return false;}}return true;}
###Explanation:
Explanation:
int b=a.length,i=0,j=0; //Create Variables
for(;i++<b;){for(;j<b;j++){ //Nested Loop
if(a[j].length()!=b||a[i].charAt(j)!=a[j].charAt(i)) //Is the grid valid?
return false; //if not, return false
}}
return true; //if it gets this far, return true