I originally worked with BX301, and didn't notice that JR55's dump was different; BX301 outputs a byte for 4 clocks, while JR55 outputs a byte for 2 clocks. The SM510 datasheet says "the system clock has a frequency of one second that of the oscillator frequency". I think that's a mis-translation of one half, which matches what JR55 was doing. The SM511 has a selectable 8.192/16.385 kHz system clock which defaults to 8.192 after ACL. That matches what I see with BX301.
I dumped JR55 with 4 clocks per byte, so I was sending doubled-up opcodes and then missing half the data. That doesn't explain why S2-S8 weren't working, though. I assume that was due to some kind of damage.
ML102 also outputs a byte for 2 clocks, so I expect it is also an SM510.
Do you know the process of choosing the 16kHz clock? The datasheet just says it "can be selected by instructions", but I didn't see anything obvious in the instruction set.
SM511 emulation in MAME hit unknown opcodes sometimes, the timing suggests these are for the instruction clock divider. If you still have a SM511(or in the future), try: $60 $36 for 16KHz instr. clock $60 $37 for 8KHz instr. clock