There are two problems with your script. The first has been answered by @MotoX80 -- it's necessary to make the contents of the $Appx1 variable available within the script block which will be executed on a remote machine.
Note, too, that the "-like" operator requires a wild-card in the right-hand operand unless you only wand an exact match. If an exact match is what you want it's usually better to use "-eq" instead of "-like" to avoid misinterpretation.
The second is that you've used the Format-List within the script block. The formatting of the information by Format-List is intended for the host console.
The Format-List (and Format-Table) send their output to Out-Default. It's Out-Default that uses a format file to figure out how to format the output and has to take the hosts abilities into account (e.g., line-wrapping longer lines).
PowerShell determines what the "host" actually is, and the characteristics of the host.
That output isn't sent to the "success" stream (i.e., STDOUT), it's sent to the host. But there is no host console when you run a command on a remote machine. So, if you want a string to be returned, pipe the Format-List into Out-String. But really, if you want to use Format-List, use it on the local machine and just let your script block return the PSCustomObject that the Select-Object creates. IOW, remove the "| Format-List" from the script block. Pipe the results of the Invoke-Command into the Format-List.
Have a look at this: https://devblogs.microsoft.com/powershell/how-powershell-formatting-and-outputting-really-works/