The highest score ever done by a player is 4,091,230, on Beach. However, it can go higher.
Formula for scoring:
Number of Pokemon types you took times score of the photos on the course.
Or, essentially, x(y)
The first part is easy, considering there are 12 types of Pokemon on the beach. So now it's just 12(y).
Next, you just use the other 48 shots you have and spam photos of the highest scoring action on the course: Pikachu on a Stump. You get this photo by scaring off Scyther with a Pester Ball at the beginning of the stage. Once it is scared off, you will later see two Pikachu... on stumps.
This shot is worth the following:
Special: 1300
Size: 1000
Pose: 1250
Technique: 2x
Same Pokemon: 280
Total Score: 7660
Since we took 48 photos of that Pikachu, we would have 7660 x 48, being 367,680. Cross referencing three different sources, we find out that the other scores for our other photos are:
7660, 5100, 3440, 4400, 4500, 4400, 4600, 4960, 4040, 4260, 4400, and 4100, totaling 55,860. Adding this to our previous total, we have 423,540. Multiplied by the 12 types of Pokemon on the course, we get...
#5,082,480 points.