Help with safeload of ADAU1701

Dear All, 

I have read the FAQ about how to implement safe loading of parameters in the ADAU1701 and I thought I had got it spot on. But I have a weird bug. I'm trying to implement a simple volume control. I am mixing all the inputs (I have also been having trouble with the inputs but that is for another question). Please see the attached image of my sigma studio schematic. 

As far as I understood, the volume gain level is at parameter address 0x20. If I use this address and send:

08 10 00 00 80 00 00

...then...

08 15 00 20

Nothing happens. However, and this is the weird bit; If I send:

08 10 00 00 80 00 00

...then...

08 15 00 14

It works?!?!?!? 

If I look at the *.params file I see:

Cell Name         = SW vol 1

Parameter Name    = SWGain1940DBAlg1target

Parameter Address = 20

Parameter Value   = 1

Parameter Data :

0x00 , 0x80 , 0x00 , 0x00 ,

I can also see this in the parameter data, the 20th line is:

0x00 , 0x80 , 0x00 , 0x00 ,

Have I misunderstood something in the way that safe loading works? 

1. send "08 10" (safe load data address), then the dummy byte 00, then your data to be written into the parameter memory.

2. send "08 15", (the safe load address that corresponds to "08 10" where you wrote your data), then the dummy byte 00. Then send the parameter address where you want that data to be loaded.

3. set IST high.

So surely I should be sending "08 15 00 20" given the parameter address is 20 during step 2? 

What am I missing?