The difference between gross domestic product (GDP) and gross national product (GNP) is not affected by the factors that you mention. Instead, it is simply affected by the fact that these two statistics measure slightly different things.
GDP is the more commonly used of these two statistics today. It seeks to measure the value of the goods and services that are produced within the boundaries of the United States in a given year. GNP, by contrast, measures the value of goods and services produced by the residents of the United States. GDP, then, does not capture the value of work done by American citizens who live and work in other countries.
There is usually a very insignificant difference between the GDP and the GNP for a given country in a given year. There can be major differences in some circumstances, such as when citizens of one country gain significant income from investments that they have made in foreign countries. But, for the most part, the difference between GDP and GNP are not significant. The difference is there simply because there will be some residents of the US working in other countries and some residents of other countries working in the US.