Partial answer
- G tries to make up an answer and randomly decides to truth or lie (undecided)
- J copies A or B randomly (joker)
This means that G and J answers are undistinguishible from a random bitstream independent of anything else. However, it is possible to trick them out by say, asking J something and then asking A if J's answer was truthful. But on the other hand, I don't see any advantage of using this trick.
Another trick might be to make they leave by giving them unsolvable questions. This could be useful if other trolls like K, L and P don't rely questions to trolls who left.
- E says yes or no randomly (random)
Another random bitstream, but this one would never leave. However, giving him an unsolvable question and getting a junk answer instead of seeing him leaving might give the information that he is not A, B, F, J, O, Q, R or possibly someone else.
- P asks everyone else the question, then takes the logical xor of all the answers
Since A is opposite to B, C is opposite to D, and M is the opposite of N, those all get zero'ed when xor'ed, leaving P's inputs being mostly junk random data, or at least very doubtful data.
Also, since his answers already includes xor of three perfectly random bits from E, G and J, it is also undistinguishable from a random bitstream. Could still be tricked out if you can get E, G and J would-be answers being xor'ed out. But I still don't see how his answers could be useful.
Perhaps, making P leave might be interesting.
- Q is the same as P but with logical and
- And R is the same as P but with logical or.
So, Q always answers "no" and R always answers "yes" (either in English or in Trollish). This is because that Q could only answer "yes" if everyone else answered "yes", which is impossible. Also, R could only answer "no" if everyone else answered "no", which is also impossible. They also will never leave since C and D never leave.
In these trolls, 10 of them speak English, but the other 5 speak Trollish, an unknown language.
I suggest that we should assume that "yes" and "no" in Trollish clearly distinguishable from each other like "eeut" and "brroj" instead of "kobva" and "cobfa". So, if one troll answers "eeut" I know that he speaks Trollish and that "eeut" is either "yes" or "no" in Trollish. If I ask the truthteller if eeut is the Trollish answer for the word yes and he answers me yes, then when another troll tells me "brroj" I would know that this is "no" in Trollish.
So, let's see the trolls profile:
A, B, C, D, F, Q and R are deterministic and independent of anything else.
O is also deterministic once you know which is his state.
C, D, E, Q and R never leave.
E, G, J and probably P are completely random.
H, I, K, L, M, N might be anything. They could be deterministic, deterministic sometimes, completely random or biased random.
Although I have no idea how to solve this optimally, let's give an upper bound:
With 18 trolls, ask each two questions: "Is 2 + 2 = 4?" - Some will answer "yes", some others will answer "no", some might answer something else in Trollish. 18 questions so far.
From the 13 trolls speaking English, we should try to find at least one of the truthteller (A), the liar (B) or the metereologist (F) or the toggler (O), in order to get usable answers to useful questions. Ask them the question "Is 2 + 2 = 5?". 31 questions so far.
If any troll between the 13 English-speaking produces two equal answers for those two questions, they can't possibly be A, B or F. If no troll produces two consecutive equal answers for those two first questions, this means that the trolls who speak Trollish are precisely C, D, O, Q and R who necessarily must produce two consecutive equal answers. Also, B, C, D, O, Q and R never answer both those two questions correctly. A, (F is truthful) always answers correctly.
From the trolls that speak Trollish or that didn't answered correctly the first two questions, ask them "Does the set of sets which does not contains themselves, contains itself?" - This tells apart B, F (if liar), G, O and P who will leave, while C, D and E will stay. 47 questions is the upper bound so far.
Run out of ideas...