Your problem is here:
Dim AvStatus = Hex(info.Properties("ProductState").Value.ToString())
You're converting the ProductState value to a string, which will be a decimal number string, not a decimal NUMBER, which is what the Hex function wants.
You're nesting method calls together, making it more difficult to debug the code. Break the line out into individual statements so you can see what you're really dealing with in the debugger.
Dim productStateValue As Integer = DirectCast(info.Properties("ProductState").Value, Integer)
Dim productState As String = Hex(productStateValue)
My VB is quite rusty, so this may not work as written, but you get the idea.