Разобрался. Оказывается, в Controller_User был отдельно прописан use Singleton, а для остальных классов это было прописано в родительском классе Controller. Соответственно, getInstance возвращал родительский класс, и присваивался текущий наследник этого класса. Прописал во все контроллеры use Singleton и проблема решилась.