Проблема, вероятно, связана с шириной вашей сетки относительно размера страниц XPSDocumentWriter.
WPF запишет в Документ элемент, который вы предоставляете, как есть. Это означает, что он не будет масштабироваться в соответствии с содержанием страницы.
Предполагая, что ваш документ имеет правильный размер (предположим, что это буква), вам нужно определить область печати документа и применить RenderTransform к сетке, прежде чем записать его в XPSDocumentWriter
Код для этого будет выглядеть примерно так:
Grid grd = new Grid();
XpsDocumentWriter wrt = new XpsDocumentWriter();
//Bunch of code to manipulate your grid here
//Now we calculate the scaling required:
double ScaleX = PageWidth / grd.Width; //The page width must be in Device Independent Units
double ScaleY = ScaleX;
grd.RenderTransform = new ScaleTransform(ScaleX, ScaleY);
wrt.Write(grd);
РЕДАКТИРОВАТЬ: Изменен код так, чтобы ScaleX и ScaleY указывали на количество, необходимое для полного соответствия сетки в XpsDocument