Я так понял, вы хотите, что-бы когда делаешь какие-то фиксы в т.н. "ядре", то это бы менялось везде. Вообще подход MVC отлично для этого подходит. Если все грамотно сделано, бизнес логика практически одинаковая, и интерфейс меняется несильно, то модель и контроллеры можно полностью сделать общими, и если надо, можно добавить какие-то базовые классы для вьюшек.
Самый для меня очевидный способ - запихнуть все это в фреймворк и все. Это удобно еще и тем, что все кроме публичных хедеров будет скрыто внутри. Можно сделать красивую инкапсуляцию с удобным интерфейсом снаружи. Если что-то нужно будет изменить/добавить эксклюзивное, то просто наследуемся или делаем категорию.
Другой вариант, это воркспейсы. Сам никогда не использовал, но знаю, что в один проект можно добавить другой (просто перетаскиванием), так что ваш базовый проект можно использовать и так. Меняете что-то в базовом - изменения затронут все проекты которые его используют.