Enum in PowerShell Class
The best argument for using an enum in this context is the ability to:


Early input validation
Allowing users to discover valid inputs


In order to take advantage of that, your first example needs a slight change to use the enum type as the parameter type:

class PxPath {
    PxPath ([string]$path, [pxPathType]$pathType) {
        # if user input a string that doesn't correspond 
        # to a [pxPathType] name, we won't even get this far!
    }
}


Now, your user has the option to pass either a [pxPathType] value or a corresponding string value:

$pxPath = [PxPath]::new("some\path", [pxPathType]::FileSystem_Folder)
# or
$pxPath = [PxPath]::new("some\path", 'FileSystem_Folder')


But this would fail even before we reach inside the constructor:

$pxPath = [PxPath]::new("some\path", 'not_a_valid_enum_name')