Have you tried comparing the execution plan for the specific SQL when it runs on the old and new systems? That should be the first step. If they are different you can start to investigate why. If they are identical then you can start to look at some of these more generic system-wide changes, but given the amount of change (processors, SGA, storage, probably database release, etc) I suspect it is something much simpler and not related to virtualisation.
As usual there is no point in changing something if there is no performance diagnostics evidence to support it.
Thanks for the reply Simon. The issue with trying to compare execution plans is it is a package with a bunch of procedures in it doing table truncates followed by lots of inserts via selects from the destination tables. I guess we could pull out a section of that package and try and run just one query for comparison.
The plan now is to revert back to the original config and yes there was a db upgrade and OS upgrade in there as well so we will try and revert back to post move and progress forward while monitoring the effect of the changes.