what would you recommend?
1) forget about MVC for a minute. While we're talking about "model". Also is forget about the view, HTML, etc. Only PHP, only hardcore.
2) move all the actions into separate classes, what would you have had to object to the action
3) remove all the duplication in individual objects (that is to specify what is meant by the second item) and remove all dependencies
4) because you have a lot of objects - use the container dependencies
5) to work with the database it makes sense to organize a DAO
for example. That is what all that relates to the SQL that would be somehow hidden in them and not spread over all objects. As you can read on the subject Table Data Gateway.
That is, we should form some kind of API. We need news - get the object that knows how to get them. Need something else - this something, too, there is an object able it. How is he going to do it - it is the third.
Further, it is necessary to add a layer that will convert the data returned by the previous API, in the format that we want. It will be the controllers in fact. They need a router, template engine, etc.
In order to eliminate duplication UI-Ki has the sense to distinguish the individual components (e.g. the block with the latest news is a separate UI component). That is, the page will be assembled as though from the pieces.
Well, something like that.