Instead of interpreting a word as bits, use 16 bits and interpret as WORDs when needed.
By doing bits as the "native" size, you can do indirect bit number (i.e. use it in a FOR loop), but still reference it as a WORD when needed by doing a :UW cast.
To cast 16 bits as a WORD, the starting bit must be WORD aligned, e.g. C0:UB, C16:UB, C32:UB, C48:UB