HTML5 Семантика?
Когда появляются вопросы толкования тегов, я обращаюсь к источнику, в данном случае источником является стандарт от w3.org.
Согласно данному стандарту,  существует тег main для представления основного контента. Данный тег может встречаться на страницу только один раз.
Тег article представляет самостоятельную законченную сущность. Тэг может быть вложенным, но тогда он должен отвечать основной тематике родительского тега.
Тэг header, в свою очередь, представляет вводную к тексту, вопреки пониманию верстальщиков о хедере и футере. В вашем случае этот элемент стоит применить к абзацам с превью справа.
Тэг aside служит для представления блока дополнительного контента, как например блок справа на примере.
Тэг nav используется для указания блоков навигации.
Тэг section используется для тематической группировки контента.
Я предлагаю Вам такую структуру, но возможны и варианты.
Главной ошибкой предложенной Вами семантики я вижу отсутствие выделения основной статьи тегами (Вы используете для этого классы).
Дело в том, что на странице таких блоков, как в примере 8 штук, с разными категориями и разным расположением статей.
Значит как я понял, делить эти блоки именно article ? а внутренний контент уже делиться на section и aside ?<article class="one-big-post">  <!--- На странице будет несколько подобных блоков  с разным контентом и расположением элементов --->
 <header class="cat-title"> <!--- Каждый блок со своим названием категории --->
  <h1>Название Категории</h1>
 </header>
  <section>
    <img></img>
    <h1>Название поста</h1>
    <p>Пост</p>
    <a></a>
  </section>
   <aside>
     <nav>
        <section> <!--- Тут section т.к посты выводятся из одной категории --->
          <h1>Правый Пост</h1>
          <header>Текст</header>
        </section>
    </nav>
   </aside>
</article>