Alice was born in:
April
In Bob's questions, we find out that:
1. The common numbers that would make Bob unsure would be 4, 5, 7, and 8.
2. With presence in the first and later half of the calendar year, 5 (March and April) get removed as options
3. That leaves us with 4, 7, 8.
In Charlie's questions, we find out that:
1. The common second letters that would make Charlie unsure would be a, e, u.
2. With the number of months, it would be 31, 30, and 28.
3. Combining both of those, we end up with only four options: 31e: December, 30e: September, 30u: June, and 28e: February.
We are looking for answer combinations that give Bob and Charlie exactly one choice, but those choices have to be different.
Using some javascript to generate the combinations, and then painstakingly manually going through each one for Bob and Charlie's guesses...
Removing all combinations with substring u-28 due to their impossibility.
Removing all combinations with substring u-31 due to their ambiguity for Charlie.
Removing all combinations with substring 8-second due to their ambiguity for Bob.
Removing 4-first-u-30, 8-first-e-28 as these combinations end up with Bob and Charlie with the same guesses.
[4,7,8]x[first,second]x[e,u]x[28,30,31]: Bob's guess, Charlie's guess
4-first-e-28 - June, February
4-first-e-30 - June, September
4-first-e-31 - June, December
4-second-e-28 - July, February
4-second-e-30 - July, September
4-second-e-31 - July, December
4-second-u-30 - July, June
7-first-e-28 - January, February
7-first-e-30 - January, September
7-first-e-31 - January, December
7-first-u-30 - January, June
7-second-e-28 - October, February
7-second-e-30 - October, September
7-second-e-31 - October, December
7-second-u-30 - October, June
8-first-e-30 - February, September
8-first-e-31 - February, December
8-first-u-30 - February, June
We can further cross-check this with each of the "answer profiles" of all the months, and we can filter the list into all options with ONLY one similarity each for Bob and Charlie's questions to those month answer profiles.
Month answer profiles:
7-first-a-31 January
8-first-e-28 February
5-first-a-31 March
5-first-p-30 April
3-first-a-31 May
4-first-u-30 June
4-second-u-31 July
6-second-u-31 August
9-second-e-30 September
7-second-c-31 October
8-second-o-30 November
8-second-e-31 December
What remains are the following:
Alice's answers - Months that fit
4-first-e-30 - February, April
4-first-e-31 - January, February, March, May, July
4-second-e-28 - September, December
4-second-e-30 - June, November, December
4-second-e-31 - August, September, October
4-second-u-30 - August, September, November
7-first-e-30 - February, April, June
7-first-e-31 - February, March, May, October
7-first-u-30 - April
7-second-e-28 - September, December
7-second-e-30 - November, December
7-second-e-31 - January, July, August, September
7-second-u-30 - July, August, November
8-first-e-30 - April, June, November, December
8-first-e-31 - January, March, May, November, December
8-first-u-30 - April, November
Since Doris was sure without any further questions, the only option left for her would be to guess that Alice's birthday falls on...
April
The exact answers Alice gave to Bob and Charlie:
She told Bob that her birth month was 7 letters long (lie) and was in the first half of the calendar (truth), leading him to think it's January. She gave Charlie 'u' as the second letter (lie) and the month having 30 days (truth), leading him to think it's June.