Are you following section 4.4 Message Integrity Code (MIC) ?
MIC should be calculated for 60 | xx xx xx 00 | 20 | 01 00 (8 bytes) I guess something is wrong in MIC calculation, do you have the direction set correctly ? BTW when I look at some earlier code why do you start at 1 instead of 0 ?
b[6] = devAddr[1];
b[7] = devAddr[2];
b[8] = devAddr[3];
b[9] = devAddr[4];
Which platform are you developing on ?