Não consigo ver o ponto exato em que seu script está falhando, mas o teste Set-Location que você mencionou me lembra de um problema que tive no PoSH ao tentar mapear / desmapear / mapear locais repetidamente em um script .
Em suma utilização
FILESYSTEM::X:\
em vez de X:\
EDITAR: Ok, então passei 30 segundos lendo seu roteiro. Eu colocaria
$Path = FILESYSTEM::$Path
No to de cada função.