Actually, Microsoft Virtual PC already has an option called "Compact virtual disk". Read about it in the help file. However, to achieve the best reduction you will need to zero-fill the empty parts of the disk. For that you will need a third party tool - but there are plenty of those. Just google.
Sorry, misread your post. You already tried that. In that case you didn't read the help file hard enough. I quote:
Before compacting the disk, we recommend that you use a disk utility to zero out blank space, which should result in a smaller compacted virtual hard disk.
I use a utility called Eraser. I think it was recommended in some Microsoft TechNet posting or MSDN. And it's totally free.