PaulRB i did try your suggestion but didn't seem to work, similar as before , one board or the other.
Either way, wow, thank you both for your patience and help. Are you both happy for me to close this off and mark as solved - there is so much info and education in this post, I'm sure it will be a useful reference to many people. that's on you guys!!
I didn't test it myself and was unsure if it would work. I guess shifting a 16-bit value by a 32-bit value doesn't work like addition or multiplication because the result isn't 32 bits.
If you have any other questions about how I shortened the code, please ask on this forum topic. I want you to be capable of doing similar in future.