The solution to this is using a comma before variable you want to output. It tells PowerShell that you want to keep value type. The comma is a specific type of a prefix unary operator.

As a binary operator, the comma creates an array. As a unary operator, the comma creates an array with one member. Place the comma before the member.

PowerShell is still doing its flattening work thou, but it results in returning your original object intact. If you need to more about operators in PowerShell Microsoft has excellent documentation on that topic. Please be aware using comma also has consequences. Have a read PowerShell – Returning one object from a function as an Array. It discusses some issues with a unary operator that you should address if you're going to use it.