Как правильно разбить приложение на Activity и Fragment?
Вообще тут по собственному усмотрению надо делать. 
Можно делать фрагменты со стеком, но ведь боковое меню-то останется при этом доступно и юзер сможет туда зайти и логика аппа поломается, т.е. не забыть отключить боковое меню. Однако при системе фрагментов в стеке есть проблема сохранения этого стека при уходе на фон и возврате (запустил календарь, нажал Home типа случайно или тебе как раз в этот момент внезапно позвонили, вернулся в апп - грабли) или при смене ориентации девайса с портрета на альбом (повернул девайс - грабли), потому что в стеке остается только последний фрагмент в таких случаях.
Соответственно хочется перейти к активити и в данном случае лучше запускать активити на результат (startActivityForResult). Соотв. бокового меню не будет вообще, а стек будет нормально сохраняться. Но вот незадача - фрагмент не имеет метода onActivityResult(), он есть у фрагмент-родительской активити, т.е. придется сооружать Вам тут костыли недюжинные чтобы из активити этот результат передать во фрагмент. Ну, гугл на эту тему подскажет.
Ну, или делать как Вы сами и предлагаете - путем именно замещения фрагментов, 1 фрагмент на стеке сохраняется. Но опять же - как транспортировать целевые данные будете в итоге? Через SharedPreferences? Через БД? А как будете знать что это актуальные данные, а не с прошлого выбора остались?
Фрагмент с DatеPicker кладете поверх фрагмента, куда должен вернуться результат,
с помощью метода add в FragmentTransaction. Один фрагмент подписываете на второй
и ловите дату