Shouldn't "lui Maria" be "Mariei" instead?
Both variants are correct.
Not both are correct. The given one is incorrect, but used a lot in casual speech. Maybe the Romanian Academy will accept it one day. In formal contexts (job, school, university) you should always use "Mariei".
Depends on what part of the country you live in. In Transilvania I heard "lui Maria". In other parts, I heard Mariei. You're understood either way, though.
Mariei, not lui Maria
We sang to Mary happy birthday is an acceptable answer I think
It is not proper English. You can either say "We sang Mary happy birthday." or "We sang happy birthday to Mary.".
The answer is acceptable in English, but we would usually say (my indicate wrong response) "We sang Mary Happy Birthday".