First make sure you are using the latest and greatest VISA version.
VISA is getting pretty smart these days. Part of this "smart-ness" may be getting in your way. Here is my point.
After each write/read action, you are closing the VISA session. I suspect that each time through the loop VISA is creating a new session in your behalf (this is the Smart-ness thing).
Try getting rid of the VISA close in the called sub-VI and only close the session AFTER the main loop completes.
Keep us updated if you get this figured out.
Ben