Never tried demo (neither in ssqc) in my entire life, so probably I'm just sayings idiot words but: why not recreate a csqc demo func by yourself?
Something like, every time x player picks up a item/weapon, every time x player begins movement, save a playerx.whatever file on disk and when demo is closed, close that file.
When open "customdemo" file, creates several views, one of for each player. How? it's pretty basic, using setviewprop(VF_ORIGIN,..), setviewprop(VF_VF_ANGLES,..) and addentities you can "pilot" what you want to see right now in csqc. For example, in craFTEr I used setviewprop and addentities to switch on the fly from editor camera to player head camera, and to toggle on/off entities which lie on layers that were on/off.
I think the mechanism it's pretty the same. You should of course, for your sanity, start with a project from scratch and to obtain a minimum skeleton where is CSQC that manages input and movements and ssqc that only "rebounds" every player x origin,velocity,armor, etc. snapshot to any other player.
I did something like a bomberman multiplayer demo some time ago and it worked beautifully (I had to release it one day) because server was merely a semaphore which just said "ok, you player x moved, so replicate your position to the others, you player y no, so stay right there" and all the logic was clean and beautiful written in csqc without "update this, that no, this...uhm I dunno" and so on. Probably of course my idea is idiotic because works well for like 4 players but would go completely mad with 16 player or +. And probably there are ton of security issues which Spike would fill 4 pages of thread
but, hey, this is what I'd do!