You get an exception in this call
$BNTclient.ReadPropertyRequest($device_id, $objectId, $propertyId, [ref]$noScalarValue)
The reason is, you are passing invalid arguments and there is no such method overload to satisfy it. This is the declaration of this method from the sources:
public bool ReadPropertyRequest(BacnetAddress adr, BacnetObjectId objectId, BacnetPropertyIds propertyId, out IList<BacnetValue> valueList, byte invokeId = 0, uint arrayIndex = ASN1.BACNET_ARRAY_ALL)
As you can see, first argument is of type BacnetAddress, not an integer as your are passing ($device_id). You need to pass BacnetAddress instance like one below. You provide the IP address of the device from which you want to read the object property.
var address = new BacnetAddress(BacnetAddressTypes.IP, "192.168.1.99")