Lawrence,
To expand on what Sergey has told you. Header files contain compiler directives, that is they are processed by the compiler at the time code is compiled. Fox uses separate program files for everything so an include file has to be "included" in each and every program, form, and class library that will use the manifest constants (#DEFINEs) in it.
When you #INCLUDE in Main.prg then the compiler will do a search and replace for the #DEFINEs before compiling Main.prg. However, when compiling Program1.prg the #INCLUDE is not there and the compiler will not do the search and replace and you get errors.