Ignition timing could be playing a role in what's happening, Spikey. I forget which type of ignition you're running, but will assume a dyna S. With porting, pods, exhaust, and cam changes the high rpm, advanced timing performance is pretty wicked and not very finnicky about tune. Idle to mid range may take a bit of dialing in and I usually start with ignition before moving on to jetting, etc.
With above mentioned mods, the carbs are usually jetted richer than stock and my first instinct was to advance timing in order to facilitate a full burn of this richer mixture. Turns out this was the opposite of what I needed to do. Retarding the timing improved my low end. I've been setting my advance timing to the left-most mark and having idle fall just to the left of "F", and this has improved "city" riding. The Dyna S doesn't have quite the advance curve as a stock ignition, so if timing has been set on advance, the "F" timing will fall to the right in most cases, which doesn't help much for city riding.
Carb synch is another thing that matters less at higher throttle ranges, but will affect lower ranges much more.
I know the porting has been in the back of your mind as a potential problem, but I would encourage you to set it aside for the moment in order to concentrate on the basics without interference. Having presided over many changes in the engine, and worried over each detail of a build, I tend to get far ahead of myself when determining initial tuning and begin thinking that every problem relates to whatever detail worried me most.
My final opinion is: Gear tall. Drop a tooth up front or add a couple(few) in back. Give the bike every chance to get things moving at low rpm's. I geared one of my bikes low for highway riding and I hate it around town. The few rpm's gained at highway speeds are not worth the sluggish response at city speeds, and I've actually decreased my mileage with this move.