Mary,
You're asking all of the right questions, and for most of them, there is not one right answer. Everyone does their tracking slightly different. Here are my opinions:
-
Having one program will keep things tidy, but if you want to identify a single piece of content's effect on pipeline, etc, then splitting it out into different programs would be best. I personally have all of mine in one program (website inbound).
-
I would use one global form and build out all of the capabilities there, like hidden fields (i.e. capture which resource they chose, utm codes, etc.)
-
You can create SFDC Campaigns for each piece of content...or tasks, or append to an existing field...there really are a number of ways here.
Happy to elaborate on anything, but hopefully others will chime in as well.