Okay, so in my actual project I have a file that takes care of my layout block. If I copy your code into that file and consist the Multi_mark_engraver, it works. But if I create a separate file with your code instead and include it in that layout file, where I consist the engraver, no rehearsal marks get printed and I get these errors:
/home/peter/LilyPond/includes/PeteCrighton/tools/enhanced-multi-mark.ily:77:2: error: GUILE signaled an error for the _expression_ beginning here
#
(ly:register-translator
/home/peter/LilyPond/includes/PeteCrighton/tools/enhanced-multi-mark.ily:77:2: error: syntax error, unexpected EVENT_IDENTIFIER
#
(ly:register-translator
/home/peter/LilyPond/includes/PeteCrighton/tools/enhanced-multi-mark.ily:88:14: error: syntax error, unexpected EVENT_IDENTIFIER, expecting '='
same moment."
)))
Interpreting music...
warning: unknown translator: `Multi_mark_engraver'
warning: cannot find: `#f'
This is the file structure:
includes/PeteCrighton/layout.ily (where my layout block lives)
includes/PeteCrighton/tools/enhanced-multi-mark.ily (your code minus the layout block which I included in the above file)
And at the top of layout.ily:
\include "tools/enhanced-multi-mark.ily" (with includes/PeteCrighton being included with the -I command line option)