I had a similar problem and fixed it by using two variables. Do not know why this worked, but I have used this routine for some time now.

Code:
cnt var byte      
Pb1	var word  
Pset    var word 
READ 0,Pset.BYTE0
READ 1,Pset.BYTE1
Pb1 = Pset

C_P:
		for cnt = 1 to 1  
		Pb1=Pb1+1
		WRITE 0,Pb1.BYTE0
		WRITE 1,Pb1.BYTE1
		READ 0,Pset.BYTE0
		READ 1,Pset.BYTE1
		pause 100
		next
RETURN
Maybe all you need is the count routine to ensure that the data is being written?