The root should be a standalone because the root's server should be offline, which would be easiest if never joined to the domain. Since not joined to the domain, it cannot be an enterprise CA. This is a typical recommended setup.
You do NOT need to bring the root CA online. It should remain offline. I presume that when you reinstalled the subordinates that new certificates were issued to them - if not, you do not need to bring the root online, you should keep it offline and use a flash drive, floppy, etc. to transport the data.
What kind of autoenroll certs are you trying to get? User or computer certs? If computer certs (e.g. DC or workstation) then you need to view the Certificates MMC snapin under the computer context. If a user cert (e.g. EFS or email user) then you need to view under the user context. Look under the Personal - Certificates folders within the respective area for the cert you need.
Also, check the computer context of Certificate MMC under Trusted Root Certification Authorities - certificates - and look for your root certificate there on a domain joined box. Also, check GPO to make sure it has the current root cert being deployed:
Policy Object Name/Computer Configuration/Windows Settings/Security Settings/Public Key Policies/Trusted Root Certification Authorities
Refer:
http://technet.microsoft.com/en-us/library/cc738131(WS.10).aspxWhile in that general area, look around for relevant autoenroll type certificate settings to see if they are set properly. If you aren't sure, just ask.
Also, check AD Sites & Services - View - Services Node - expand Services - Public Key Services - Certification Authorities. Your root should be listed, is okay if the subs are or are not listed here but the root must be. The subs should be listed under Enrollment Services folder.
Open certtmpl.msc (Certificate Templates MMC) and view the properties of the template(s) you are not getting autoenrolled. In particular, check the Security tab for permissions and make sure that domain\users, DC, computers for each domain is listed for each relevant type for read, enroll, autoenroll - sounds like you looked at this a little bit already.
Open certsrv.msc (CA MMC) on the sub CA and expand CAName (name of the CA) - Certificate Templates and make sure the tempalte is listed - if not then right click - issue template... to assign it to the appropriate CA. These groups should also be listed within the CERTSRV_DCOM_ACCESS group, which is a local security group on the CA if the CA is not a DC (which is should be just a member server), or if the CA is on a DC, then it would be an AD domain local security group.
You can get clients to recheck for certs by using 'certutil -pulse' - for XP clients they would need the 03 adminpak installed to get certutil, otherwise gpupdate /force and reboot (twice if memory serves, but check after first).
When manually requesting computer certs, you need to do so from the Certificates MMC - computer context. Then right click Personal - Certificates folder and request the cert from there so it happens under the computer context, not the logged in user. Even if the user has permission, they are not a computer so will be rejected as being an invalid requestor type.
Make sure your DC's are updated with certs from the correct CA as well. You can run 'certutil -dcinfo deletebad' then 'certutil -pulse' then reboot the DC (a necessary evil unless 2008 R2, if so ask) - make sure to stagger the DC reboots of course so users can still log in.
Let's start with that for now....