Here's one that won't get used.
But since the questions of how big and how fast came up, you won't find anything smaller or faster. (unless Bruce shows up)
Code:
GroupVars  VAR BYTE[6]
  A    VAR GroupVars(0)
  B    VAR GroupVars(1)
  C    VAR GroupVars(2)
  D    VAR GroupVars(3)
  ZW   VAR WORD EXT : @ZW = _GroupVars + 4

ASM
    CHK?RP _GroupVars
    swapf  _D, W     ; swap nibbles in D
    iorwf  _C, W     ; or with C
    movwf  ZW + 1    ; move to Highbyte of word
    swapf  _B, W     ; swap nibbles in B
    iorwf  _A, W     ; or with A
    movwf  ZW        ; move to LowByte of word
ENDASM