I don't think you are using these VIs in a correct manner. Since the query can happen immediately after the write, you have no way of knowing that the device has returned its full response. You must ensure some sleep occurs between the write and the query.
An alternate way to do this works well if your device terminates every response with the same character, such as LF. That way you can just do a VISA Read with the maximum number of bytes you'd ever get back, and VISA will stop reading when it sees that character.
By the way, the VISA Bytes at Serial Port returns whatever the OS returns, and I can say with high confidence that this specific problem is not with those components (VISA or the OS).
Dan Mondrik
Senior Software Engineer, NI-VISA
National Instruments