Каковы накладные расходы в PHP на мелких объектах?
Во-первых, точный ответ дадут только тесты. Набросайте по-быстрому подобие того, что вы хотите сделать, и проверьте, сколько времени уйдет, например, на создание 100 000 объектов.

Во-вторых, по моим наблюдениям, проблема не столько в времени создания объектов, сколько в вызовах фукнций, они в PHP не очень быстрые. При создании объекта вызывается как минимум конструктор, и создание 20 свойств выльется в вызов 20 функций.

Я бы предпочел обойтись без этого. Мне кажется, вы усложняете себе жизнь.

Вообще, сложные объектные конструкции лучше реализовывать на языках выроде .NET/Java, а не на скриптовых — там все это будет работать гораздо быстрее.
Удобнее, безусловно, на каждый тип поля создать класс и инстанциировать при необходимости.

Удобнее, имхо, просто приводить SQL-типы в PHP-типы и обратно непосредственно при чтении/записи, если вы только в своём приложении не используете ООП обёртки для всех скалярных типов в PHP, типа if ($user->login.equal(new String($_POT['login']))