I think I have it now
The problem was my choice of variable to see if a repeat was active. So, let's try this again. In the module parse.py we need to change 2 occurrences of "rpt" to "rptcount > 1". These occur at lines 343 and 350.
# if repeat count is set with dupchord we push
# the chord back and get lyric.extract to add the
# chord to the midi file again. A real lyric is
# just ignored ... 2 reasons: the lyric is mangled and
# and it makes sense to only have it once!
if rptcount > 1 and lyric.dupchords:
_,lyrics = lyric.extract(' '.join(l), 0)
# The barNum and other pointers have been incremented
# and a bar of data has been processed. If we are repeating
# due to a "*" we do a AGAIN test. Without a rpt this would
# be done at the start of a data line.
if rptcount > 1 and MMA.after.needed():
MMA.after.check(recurse=True)
Again, I'm hoping someone can test this and let me know!