Мне интересно, как вы сохраняете свой прямоугольник как структуру данных, я имею в виду, что прямоугольник - это 2D, а XNA заставляет меня думать о 3D.
Тем не менее, даже в 2D и 3D, я думаю, что вы хотите, называется AABB (ограничивающий прямоугольник по оси), который очень легко найти, потому что он определяется двумя точками, образованными минимумами и, соответственно, максимумами на каждая ось каждой точки исходного прямоугольника преобразуется вашим вращением.
ПОСЛЕДНЕЕ РЕДАКТИРОВАНИЕ:
Для структуры Rectangle, содержащей X, Y, Width и Height, прямоугольник имеет следующие две точки:
(x1, y1) = (X, Y) and
(x2, y2) = (X + Width, Y + Width).
Когда вы поворачиваете прямоугольник, вы практически поворачиваете эти две точки и получаете:
(xr1, yr1) = rotate(x1, y1)
(xr2, yr2) = rotate(x2, y2).
Теперь нужный вам прямоугольник определяется точками этих координат:
p1 = new Point(Min(xr1, xr2), Min(yr1, yr2))
p2 = new Point(Max(xr1, xr2), Max(yr1, yr2))
rotate - это метод, который поворачивает ваш прямоугольник на угол вокруг определенной точки.