The problem seems to come from a notify having its LinkedMontage set to null when RefreshBranchingPointMarkers() is called. IsBranchingPoint() fails in this case, so it's never registered as a branching point.
The fact that LinkedMontage is null seems to be an overall concern. I found a montage in an internal project that also has LinkedMontage null. Resaving the montage fixes that, so perhaps there's some authoring path that leads to it not being set properly? The Montage in question was added in CL#17775462 (MM_Shotgun_Reload_Montage) and hasn't been changed since.
Another issue is that UAnimSequenceBase::PostLoad() calls RefreshCacheData() which calls RefreshBranchingPointMarkers(), but UAnimMontage::PostLoad() then calls LinkMontage() after. If that order of operations were reversed, notifies would have a valid LinkedMontage before branching points are collected.
There is no established repro case, but details can be found in the UDN:
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-134969 in the post.