Casting works only if one class was derived from the other or implements an interface.
The technique shown in the Private Fonts sample works (currently it works with the WPF build only, so if you use the GDI+ build of PDFsharp/MigraDoc, just switch to the WFP build).
You register the fonts you need in the PrivateFontCollection. You just give the Font name in the style definitions and MigraDoc will use the fonts to create PDF files.