Это решается на любом фреймверке + парочка программистов, готового решения думаю не будет, так как «для уже существующего проекта, который практически невозможно перевести на друпал». То-есть вам нужно узкоспециализированное решение. Так же все описанное похоже на
EAV модель.
ps: возможно для eav есть готовое решение ;)