I'll make a comparison with your test graphic:
This is the PNG file you provide, so this probably is the desired result:
The output of your code, approx. at the same size:
The EMF file you provide, displayed in IrfanView (again approx. the same size)
Same as 3., but with
View -> Display Options -> Use Resample
turned on:
Conclusion
As 4. look similar to 1. (i.e. the desired result), my conclusion is that the conversion to EMF format is perfectly fine, but your code scales the graphic with a simple, probably pixel based algorithm. So IMHO you need to implement e.g. a bilinear interpolation routine.