Hi Vito,
First of all, nice add-on. I must admit that when you first published it I asked myself if now an add-on does the preparation tasks (even if partially), what do I do (

) and didn't try it at the time.
Now I used FiFLi (0.77) for the first time in my flights in the past week and had few problems. To be sure I'm not wrong, I did few tests today using only FiFLi as an add-on to be sure no other add-on was responsible. I also have few remarks and recommendations and I'll start with this.
The first thing I wondered about was the use of the FLT DK DOOR selector as a mean to tell FiFLi about changing phases. Why not to use the IRS selectors (when any one of them is in NAV or ALIGN) as a signal to start passenger boarding and to the FO (if active) to start his tasks. The IRS selectors (with aircraft on ground and engine out) is the way on the real aircraft to change flight phase (in the CMC) from Power On (in your case "Parked at the gate") to Pre Flight.
I would have used the Beacon light switch as a mean to end boarding (if not ended), to end FO activities and for the FO to do the before start tasks. There is a problem with this suggestion because Beacon light should switch ON as part of the Before Start checklist while we need the boarding to end before we do the Final Cockpit Preparation but still I think it is better than the door selector (and solve the freighter problem).
I also have used the Strobe light switch as a mean of runway entry procedure and let the FO to switch ON (among other things) the landing lights (I don’t understand why only one pair of landing lights needs to be ON for this).
I did a test to see if FiFLi identifies correctly flight phases (when airborne) when started. I loaded a flight in cruise, started FiFLi and it was ok. I close it, loaded a flight in descent, started FiFLi and it wasn't (It showed climb & cruise). I guess it happened because gear was up and the aircraft was below 10,000 feet.
These is a simple way to know the flight phase in PSX. There is a variable (Qs392, FmcVnavX) where its 4th char tells you which VNAV phase is active: 0=CLB, 1=CRZ and 2=DES. Now you can identify the correct phase regardless of the altitude.
Now for some problems I had (only when FO was active):
1. When the FO sets the RTPs it messes up the Instructor Voice-ATC page. Too many things happened to me during my tests. It changed (not everything and not all the time) Origin, Destination, initial FL, flight number, the probability of Hold and Go Around from Never to Unlikely etc. It always unchecked the LNAV CRZ and LNAV ARR checkboxes. While the Call sign remained El Al, when I made first contact with the ground, it called me Aeroflot (the 1st in the list) or Emirates (the next to El Al). It took me time to understand it called me (I understood it by the use of the correct flight number). I didn't do another test to check it but this mess up also happened to me when I was airborne. It happened around the transition from Climb & Cruise to Descent & Approach (about 250nm from destination).
In some cases Origin and Dest changed to bbbb. It took me some time to understand it happened because there was no route in the FMC RTE page (bbbb is 4 boxes) but that made me understand you copy things to the Voice-ATC page and something is wrong here.
2. The next problem happened (on and off) after the FO spoke with the purser. Not always he switched the audio CAB switch to other switch (VHF R or something else). The result was annoying dial tone until I switched it "OFF".
3. The last problem happened during engine start. I used El AL configuration which doesn't have Auto Start. That means I first pulled out the start switch and when the time came, set fuel control switch to RUN. The FO called "starting engine X". I don't have a problem with that but I noticed the white light in the start switch extinguished. Do you send to PSX, for example, EngStartSw1 (Qh267) = 1? If yes, this is wrong because you reset all other bits (especially the Contact Close bit) to 0. You should use the logic OR operator on the variable only to set the 1st bit to 1 (even if it is already set).
That's it for now,
Cheers,