View of events repeats month
Your description makes it sound like you have ajax views enabled which is probably going to be very challenging to get working correctly.

There may be a better backend way to do this, but one way that occurs to me is to fix this on the client side with javascript, by merging lists after ajax finishes loading.


Copy the Bootstrap List Group view display template into your theme's templates folder. 
Add a custom data attribute to mimic the text value of the grouping's row title, and attach a custom javascript behavior to do the work on the client side. 

{{ attach_library('yourtheme/prevent_duplicate_list_group') }}
&lt;ul id="{{ id }}" {{ attributes.addClass(classes) }}&gt;
  {% for key, row in rows %}
    &lt;li class="list-group-item"&gt;
      {% if row.title %}
        &lt;h4 class="list-group-item-heading" data-grouping="{{ row.title }}"&gt;{{ row.title }}&lt;/h4&gt;
      {% endif %}
      &lt;p class="list-group-item-text"&gt;{{ row.content }}&lt;/p&gt;
    &lt;/li&gt;
  {% endfor %}
&lt;/ul&gt;

Create a library in yourtheme.libraries.yml to add a JS behavior.

prevent_duplicate_list_group:
  js:
     js/prevent_duplicate_list_group.js

Write some custom javascript logic to look for all instances of the duplicate grouping and move the values from the second list into the first. 

I've not used bootstrap views thus don't know the exact dom structure you'll need to work with, but here is something completely untested to get you started.

/**
 * @file
 * Behavior to merge duplicate List Group titles loaded from ajax-enabled views.
 */

(function ($) {
  'use strict';

  Drupal.behaviors.prevent_duplicate_list_group = {
    attach: function (context, settings) {
      $('.list-group-item-heading', context)
        .each(function (idx, element) {
          var title = $(element).attr('data-grouping'),
            duplicates = $('[data-grouping="'+ title + '"]');
          if (duplicates.length == 2) {
            var first = duplicates.eq(0).closest('ul');
            var second = duplicates.eq(1).closest('ul');
            // snagged from https://stackoverflow.com/a/28487699/413538
            // you may need to overhaul this to only walk through
            // list items from the second list up until it gets to a list item that contains an h4 and hide each individual li
            var i=1;
            $('li', first).each(function(){
              $(first).append($('li:nth-child('+i+')', second).clone());
              i++;
            });
            second.remove();
          }
        }
      );
    }
  };
})(jQuery);