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