2D Array Rotation and Rotating a Point in vb.net

I have written a 2D array rotation which works just fine, however I have a point that is focused on a single location on the array and displays a "!" instead of the number when displaying the array.

I had thought that if I checked the point during the array rotation, and then changed the point position to the new array position, the focus point would then rotate with the array, however, the new point location just doesn't match the rotated point.

In the example, I'm focusing on the number "5" (position 1,1), and should always display the "!" instead of "5".

This rotation works for a focal point of 0,0, but not for other points. Can someone please point out to me what I'm doing wrong and explain why the logic doesn't always work?