I'm not sure what anyone can do without having access to your hardware and knowing exactly how you've implemented the USB interface. One thing that is pretty obvious about the gpx_init VI is that you have no dataflow. If it matters what order you perform these operations, add error in/out connections to your subVI (which you did not post) and wire them up. Otherwise you will have these operations called in random order.