Storing a struct with bitfields in PROGMEM

The ui16s is already a typedef.
You can do

const ui16s ci_vals[] PROGMEM = {

The pgm functions can read a byte and word, not a bitfield ! That would require a whole new set of functions.
Why not do the most obvious thing: create such a struct in RAM and use memcpy_P to copy one item of the array from progmem. Then you can extract your bitfield from the data in RAM and that will be solved by the compiler as it normally does.