Thanks for the info,

I've added a counter and condition as suggested and it does indeed now pole once a second, but I'm still getting the same issue, but this time it's easy to spot. I can move a slider, click update, but a second later it will revert back to it's default setting. Watching the port monitor, only RX reports are being shown. However if I comment out the part of the code which does the checks for TX ready and plugged, I can send updates from the PC, which is shown in the port monitor window. It's as if the RX part on the PIC side is being ignored