You were right RB, what I saw was not overlapping writes with dual device cs happening in MAME, the latter overloaded the first as you said. What I saw instead was a 16 bit write setting two registers. So effectively the esselte 100 sets four registers divided over two devices in a single 'stx $c818'! The Didact design team must have had fun doing this!
So I add a handler for writes too now and things should move forward..