When you run createrepo, it should find all the RPMS in the directory it is run in .... and in all directories under that .. if you run it from the updates directory (in your example) it should work OK if you point to repomirror/fedora/linux/4/i386/updates/ with your yum ... and it should find RPMS in packages/.
If you want to point your yum to repomirror/fedora/linux/4/i386/updates/packages/ then you need to run createrepo from within the pacakages/ directory and the headers and repodata directories will be there instead of inside the updates directory.
That's interesting because I think that is they way I have it. The headers and repodata are at the same level as packages all of which are in the updates directory.
Here's the relevant section of the repo file.
[updates] name=Fedora Linux $releasever - $basearch - updates baseurl=http://mirror.myserver.com/repomirror/fedora/linux/$releasever/$basearch/upd...
I'll try and run createrepo again and see if it makes any difference.
Thanks, James