I seem to have determined the answer... Found in the MCP2515 datasheet, the full details of each config bit set by the CNF1|2|3 values.
At this time, the following seems to operate quite well:
#define MCP_8MHz_250kBPS_CFG1 (0x40)
#define MCP_8MHz_250kBPS_CFG2 (0xF1)
#define MCP_8MHz_250kBPS_CFG3 (0x85)
All of the params configured use multiples of a value called Tq, which is calculated from the 6 LSBs of the CNF1 ( aka Baud Rate Prescaler or BRP ). Tq is calculated as: 2 x (BRP + 1)/Fosc
Where Fosc = Frequency of the Oscillator.
The good values for 16Mhz have the BRP set to 1, thus:
2 x ( 1 + 1 ) / 16Mhz = Tq of 0.00000025
Since the clock on the linked CAN SPI adapter is 1/2 that of the CAN-Shield, I reduced the BRP to 0:
2 x ( 0 + 1 ) / 8Mhz = Tq of 0.00000025
YEAH! Stable operations on my bus..
fwiw, I'm using this to hack the RV-C (Recreational Vehicle CAN bus) on my 2016 Allegro Bus 45OP Motorhome..
The good news is that RV-C spec is open and quite well documented. Which is a damn good thing, since they use extended CanID, and overload it with the command, priority, data byte count and source address. Would have been difficult to figure that out.