No idea why this works, but this is seemingly working...
Basically set the transform to be at point 0, for the width I used height instead, and used a negative pageHeight value for the X coordinate.
Code:
if (isLandscape)
{
bottomMargin = 10;
overlayHeight = 38;
overlayWidth = pageHeight;
overlayX = -pageHeight;
overlayY = pageWidth - overlayHeight - bottomMargin;
textX = (overlayX - textSize.Width) / 2;
textY = overlayY + (overlayHeight - textSize.Height) / 2;
XRect rectOverlay = new XRect(overlayX, overlayY, overlayWidth, overlayHeight);
gfx.Save();
gfx.RotateAtTransform(-90, new XPoint(0, 0));
gfx.DrawRectangle(XBrushes.White, rectOverlay);
gfx.DrawString(text, font, XBrushes.Black, new XPoint(textX, textY));
gfx.Restore();
}