1
North or South ... 3 weeks from 21 Dec to 12 Jan
Depends on your sensitivity to the weather.
North India at that time can be a bit chilly specially after sunset but there are interesting places to see in Delhi and Agra and perhaps you can stay in the North for a few days and then head to the warmer sunshine of the South (Goa, Kerala etc.)
2
North and South will both fulfill your requirements- but then they are different regions and have different types of sights etc. Research a bit and see if any places in either region appeal more than others.1) As torontomm says, it can get chilly in the north
2) Around Chennai, expect rain in this season, and sometimes cyclones. But away from the east coast, weather can be perfect in the south.
4
South. North is pretty cold during winter. Fort Kochi, Kovalam, Goa, Gokharna etc makes wonderful places to enjoy some sun. Each place has its own specialties ( Kovalam being India's first hippie beach ). Goa is pretty crowded so i suggest you skip the place. Kerala has other places too, like Wayanad and Silent valley. South India definitely looks like the best option. Especially Fort Kochi.6
And keep in mind if you venture into the Nilgiri Hills in Tamil Nadu(Ooty),and / or Munnar in the Western Ghats in Kerala it's also pretty cold at nights and early mornings come Dec/Jan.
10
I go along with the South vote - well-expressed by matty & paul.I dont know from where you are travelling but again consider an openjawnticket, transiting thru' the Gulf maybe into Kochin and out thru Trivundrum
It's the wrong time for Goa, sadly as you could pass thru' hampi and Mysore en route fro Kerala via Ooty and that lovely Nilgiri railway. .
One further thought you could start in Bangalore and go straight way to Hamp, then bus to Mysore.
You are probably going to have to book ahead some hotels over X and NY.i
11
Impossible choice. Just choose one and then come back and do the other... then come back and do both again.... India is huge and gets better every time you come back.