What's the current status here? Has your friend flown?
It seems to me that he's in a pickle, his contract is presumably with Expedia, and reading through your note it seems Expedia failed to fulfil their end of the deal, him having paid Expedia for the change of date. Virgin is therefore in a difficult position if Expedia have not in turn paid VS and communicated the change, according to VS there will be no flight contract.
I think your friend should channel his energy through Expedia for a resolution. It could well cost more to fly now and of course, he shouldn't have to incur that.