Ich habe es jetzt nicht ausprobiert, aber ich skaliere in solchen Fällen immer Font.Height statt Font.Size.
Das ist auch korrekt so. Ein Setzen von Font.Size setzt intern zwar auch Font.Height, rechnet das aber noch mit dem aktuellen PixelsPerInch um.