Как правильно реализовать паттерн MVC?
Ваша задача - не зацикливаться на аббривиатуре MVC и подумать над тем, как отделить HTTP от приложения. Для упрощения представьте что:
 - view - это HTTP запрос и ответ. Это представление данных которое требует от сервера клиент.
 - model - это ваше приложение которое ничего не знает о HTTP
 - controller - это не один класс, а возможно целая цепочка классов, чья задача - абстрагирование модели от HTTP. Можно воспринимать ее как цепочку адаптеров. Запрос приходит в один адаптер - там разруливаем маршрутизацию, нашли контроллер - передаем дальше. Со временем адаптеры могут добавляться, например для добавления CORS или аутентификации могут быть дополнительные "адаптеры" (гуглить про middelwares, PSR-7 и т.д.)
Так же не забываем про принцип инверсии контроля (Inversion of control). Фреймворк должен вызывать ваш код а не ваш код дергать фреймворк. То есть именно контроллеры дергают модель а не наоборот. Модель ничего не должна знать ни о view ни о контроллерах.
Удачи.
p.s. я описал mediating controller MVC, оригинальный же паттерн MVC 79-ого года на бэкэнде не применим.
p.p.s. Перед имплементацией MVC рекомендую познакомиться с такими инструментами как composer. И например роутер сходу не писать свой. И ради бога не используйте PHP как шаблонизатор (гуглить про то что такое XSS), возьмите twig.
p.p.p.s https://github.com/pmjones/adr - рекомендую ознакомиться.
Взять самый легкий фреймворк codeigniter и подсмотреть не вариант? За день два разберетесь, там и поймете что хотите. У вас все очень классно разписано, не спорю, но реализовать это с начальными знаниями(как вы говорите) и без знания каких либо других фреймворков будет тяжело если не возможно. В голове картину нарисовать легко, попробуйте её на холст перенести). Почти у всех кто пробывал сделать свой фреймворк была такая история:"Нарисовал идею в голове/бумаге, начал пробывать пилить, пилишь пилишь. -Тьфу дерьмо какое!!!... Снес все под чистую. Начал с нуля. Этот пункт повторяеться 3-5 раз в зависимости от настойчивости(овны и козероги привет). Потом береться фреймворк, смотриться что и как сделано. Пытаемся взять основную идею, но сделать по своему. Пилим пилим. Опять пункт про " -Тьфу дерьмо какое!!!.Сносим".  В итоге повторяем почти все, но допиливаем что-то свое, что кажеться нам нужным и уместным. В итоге из таких вот франкинштейнов потом выходят свои cms , которые они знаю вдоль и поперек(сам же пилил, пыхтел) и возможно даже используються(некоторые так и пилят сайтики на своих cms, когда видят что дописывать функционал к "своему детищу" куда легче чем допиливать wordpress)". Такие вот дела. Пробуйте, пригодиться.