Here is how I set mine up:
---/etc/cron.daily/update_repository ---
#!/bin/sh
MIRROR_HOST=mirrors.secsup.org
RSYNC_REPOSITORY=redhat
LOCAL_DIR=/var/ftp/pub
rsync -av --partial --stats \
--include "fedora/core/updates" \
--include "updates/9/" \
--exclude "redhat" \
--exclude "contrib" \
--exclude "beta" \
--exclude "fedora/core/1/" \
--exclude "development" \
--exclude "updates" \
--exclude "test" \
${MIRROR_HOST}::${RSYNC_REPOSITORY} ${LOCAL_DIR}
cd /var/ftp/pub/fedora/core/updates/1/i386/
yum-arch .
# Snipped the non-i386 specific stuff...
--- End update_repository script
The main thing you missed is the yum-arch step at the end. Delete the
./headers/ directory from the download copy then rerun yum-arch in your binary
directories (e.g., RPMS/i386, RPMS/i686). The rsync script is not optimal -- I
had weird errors trying to synch the correct directory :D. But it is working
here for me.