Both of those values should be 64-bit integers that represent the number of 'ticks' (the number of 100-nanosecond intervals that have elapsed since 12:00 midnight, January 1, 1601 A.D. (C.E.) Coordinated Universal Time (UTC)).
Converting them should work as you've coded them (but you failed to convert the pwdlastset property!). The result (if you pipe it into Get-Method) should show you it has a TypeName of System.DateTime.
However, for that to work, the variable "$_" should one of the items in the $objs array. In other words:
$objs = $searcher.FindAll()
$objs |
ForEach-Object{
$arr += [PSCustomObject]@{
Name = $_.Properties.name
DistinguishedName = $_.Properties.distinguishedname
OperatingSystem = $_.Properties.operatingsystem
OperatingSystemVersion = $_.Properties.operatingsystemversion
Description = $_.Properties.description
Created = $_.Properties.whencreated
PasswordLastSet = [datetime]::FromFileTimeUtc($_.Properties.pwdlastset)
LastLogonDate = [datetime]::FromFileTimeUtc($_.Properties.lastlogontimestamp)
}