My country has many public holidays such as/like New Year, Christmas, Men's Day, and Woman's Day, etc".
That is correct and either such as or like would work. If they are all genuinely days of celebration then you could replace has with celebrate but if some of them are just public holidays with no real meaning then has is the only choice. In my country we have so-called Bank Holidays and these have gradually been decoupled from the event which they originally celebrated and an extra one inserted to fill a gap so we have the days off but we do not have anything to celebrate. So I would say we have the late August Bank Holiday but it seems a stretch to say we celebrate it.
We have or celebrate Woman's Day.
Here celebrate would be correct.
1st May is a holiday or a day off.
That is fine
9th May is a Victory Day.
Unless your country celebrates many Victory Days the a is incorrect.
People have holidays in May.
That is correct too.