Sorry , but I'm not following you here.
Where does the $myItem variable come from ?
The objects that come out of the 2 piped cmdlets was stored in the variable $Shelltimeout, not in $myItem.Shelltimeout.
From the code you've shown us the variable $myItem is empty, and hence that explains the blank result.
From the command prompt you do a Write-Host of the variable $Shelltimeout, and that displays the object that was returned by the two pipelined cmdlets. Note that Select-Object returns by default again a hash table, hence the formatting of the output you are seeing.
Perhaps you could show us the complete script you are using, that would perhaps make things a bit clearer.