So I’m not able to reproduce OP’s results exactly as they describe them, but I am definitely getting something very similar (or even potentially the same depending on how loud OP has their volume set) given the same circumstances. Project attached; the problem exists in both Noteperformer and Halion, but I’ve used Halion in the attached version.
It clearly has something to do with the fact that under the hood Dorico treats all tied notes as single events. This is all well and good for many things, but sometimes Dorico actually does need to treat multiple tied notes of various values as multiple tied notes of various values. This is the case with notes tied to staccato notes. In such a case, Dorico needs to recognize “Oh, two quarters tied to each other, the second of which has a staccato, should not be interpreted as a staccato half note. I need to play the first quarter full and then release the second one early.”
So here’s the buggy behavior. On the first playthrough, Dorico does it all correctly. Tied chains ending in staccatos are held the duration of the chain and only the final note value in the chain is cut short. On the second playthrough, however, Dorico forgets all its smart music training and decides that e.g. “No, I’m a sensible computer; that’s not two quarter notes with the second one shortened; that’s really just one half note with a staccato, so I’m gonna play it really short.”
If you set the repeat to play more than two times, the incorrect behavior seems to persist for all subsequent instances. Also, it doesn’t actually need to cross the barline to reproduce the behavior; it just needs to be tied.
different playback on repeat.dorico (1.0 MB)