"Was to " vs "was to have "

Solution 1:

You're parsing the construction wrong. Was to (have) is not a constituent.

Instead, they should be parsed:  

  1. John [was to [have [picked strawberries]]]
  2. John [was to [pick strawberries]]

Have picked strawberries is the infinitive verb phrase following to in (1),
just as pick strawberries is the infinitive verb phrase following to in (2).

Essentially, perfect infinitives like to have picked are a way to add a past tense marker to an infinitive, which is officially not allowed to mark any tense at all (that's what non-finite means).

Why would you do that? Because you might be telling a story and referring to a flashback. That allows you to call your addressee's attention to both times (the narrative time and the flashback time, one before the other) in one construction.

The be to VP idiom means 'be scheduled/expected to VP', and requires an infinitive VP.

The difference between these two sentences (not guaranteed analogous to any other sentences) is that

  • John was to pick strawberries yesterday

means that he was scheduled to be starting or picking at the flashback time yesterday. If he didn't at least start, then he did no picking at all.

Whereas

  • John was to have picked strawberries yesterday
    should mean that he was scheduled to be done picking at the flashback time. But it doesn't.

However, phrasing it that way is a mark of a counterfactual conditional -- i.e, starting the sentence that way alerts the addressee to be alert for a contradiction coming up soon.

Either way, with the be to VP, the focus is on a schedule, and deviations from that schedule.