I think I have this cracked now thanks to generous help on this and other forums.

In the end I did not need the large lookup table as it was always using the same table entry.

So my code ended up being tiny and did not require LONGS etc. .

Code:
W0 VAR WORD
W1 VAR WORD
W2 VAR WORD

SEED1 VAR BYTE 
SEED2 VAR BYTE 
SEED3 VAR BYTE  

'KEY1 = 46336;
'KEY3 = 32973;
'SHIFT1 = 1;   (-1)
'SHIFT2 = 3;       
    
' Calculates and stores the results of two cryptographic operations 
' on the first two seed bytes in W1 and W2
' 
' The operation being carried out consists of adding two 16-bit values
' and performing a bitwise rotation on the result.
' 
' The two results are calculated from adding the 2 seed bytes to both
' KEY1 and KEY2, with a rotation of SHIFT1 and SHIFT2 respectively. 

SEED1 = $C7
SEED2 = $B0
SEED3 = $6B      

'Answer should be $82 $CB $6B


W1.BYTE0 = SEED2
W1.BYTE1 = SEED1

W0 = W1 + 46336 'Key1            

' Does a cyclic bitwise rotation of B0-bits on W0

W0 = (W0 >> 1 | W0 << ($10 - 1))   'Note this is a negative shift

W2 = W0
W0 = W1     

' Does a cyclic bitwise rotation of B0-bits on W0

W0 = (W0 << 3 | W0 >> ($10 - 3))   'Note this is a positive shift

W1 = W0

' Multiplies the contents of W1 and W2 and adds KEY3, stores in W0
' Impicitly calculates 16-bit overflow only

W0 = W1 * W2
W0 = W0 + 32973   'KEY3      

SEED1 = W0.BYTE1
SEED2 = W0.BYTE0