I was away on holidays so it is only now that i have seen your post.
here's the soloution.
autocad has a variable called measurement.
It sets drawing units as English or metric for the current drawing only. Specifically, MEASUREMENT controls which hatch pattern and linetype files an existing drawing uses when it is opened.
in laymans terms: a hatchscale in an imerial drawing of 1 will display the same hatch in a meric drawing at a scale of 25.4 and vice versa. for instance, if measurment is set to 1 and you load linetypes it tries to load acadiso.lin (the meric settings linetypefile) and if measurement is set to 0 it will try to load acad.lin (the imperial file) so you can now see your problem.
o.k. heres how you fix your problem.
i will assume that you are working in metric.
inside the xref type in measurement, set it to 1 or 0. (lets say 1 for this example) reload all your linetypes and purge the drawing. save.
in the "sheet drawing" you will have to detach the xref if it is already loaded and purge. type in measurement and set it to 1 (the same as the xref) this means that both drawings (the sheet and the xref) will now display the hatch and linetype scales in the same format (in this case metric)
hope this helps
Regards
Diarmuid