Here's another workaround I found here: https://github.com/nightroman/PowerShellTraps/tree/master/Cmdlets/Copy-Item/Inconsistent-destination I've tried in the past to do this myself and would revert back to xcopy. This is "idempotent" and will have the same result the second time.
mkdir $destination -ForceCopy-Item $source\* $destination -Recurse -Force