OK! Problem solved!
The working code is in the repo already linked above. The datasheet was very terse for this chip, there is ONLY a linux driver out there but that is almost un-readable due to driver abstractions in linux. Here was the essence of the hangup with the datasheet:
1) The datasheet didn't indicate that you MUST have CS line go high between command/data messages (16bits)
2) The command representation is a bit odd. If you are showing a hexdecimal number for each command, why not show in the actual 8bit format? Why shift the values all to the right one bit?
I'd found it easier to represent the bytes as follows below as these are values I can cross reference on logic analyzer without having to bit shift in my head. From the below values, I add 0x02 to indicate the second bank when needed.
/* XRA registers */
#define XRA_GSR 0x00 /* GPIO State - Read-Only */
#define XRA_OCR 0x04 /* Output Control - Read/Write */
#define XRA_PIR 0x08 /* Input Polarity Inversion - Read/Write */
#define XRA_GCR 0x0C /* GPIO Configuration - Read/Write */
#define XRA_PUR 0x10 /* Input Internal Pull-up Resistor Enable/Disable - Read/Write */
#define XRA_IER 0x14 /* Input Interrupt Enable - Read/Write */
#define XRA_TSCR 0x18 /* Output Three-State Control - Read/Write */
#define XRA_ISR 0x1C /* Input Interrupt Status - Read-Only */
#define XRA_REIR 0x20 /* Input Rising Edge Interrupt Enable - Read/Write */
#define XRA_FEIR 0x24 /* Input Falling Edge Interrupt Enable - Read/Write */
#define XRA_IFR 0x28 /* Input Filter Enable/Disable - Read/Write */