1. First-year students eat lunch at 12:30.

2. First-year students eat lunch at half past 12.
3. First-year students eat lunch at half after 12.
4. First-year students eat lunch at half to 1.
5. First-year students eat lunch at half before 1.
[Are they all the same in meaning? Do we have to add p.m. at the end?]

1 and 2 are fine, and they mean the same thing.

I've never heard anyone use 3, 4, or 5.

You can add p.m. at the end, but you really don't need to since you are referring to lunch (and lunch is the mid-day mean).

1. First-year students eat lunch at 12:30.

2. First-year students eat lunch at half past 12.
3. First-year students eat lunch at half after 12.
4. First-year students eat lunch at half to 1.
5. First-year students eat lunch at half before 1.

All of these statements imply the same lunchtime, which is 12:30. The phrasing varies, but the intention is to convey that the students eat lunch precisely at 12:30.

Regarding the addition of "p.m.," it depends on the context. If there is the possibility of confusion between morning (a.m.) and afternoon (p.m.), it would be advisable to include "p.m." after 12:30 to clarify that it is in the afternoon. However, if the context clearly indicates the time frame as the afternoon, it may not be necessary to add "p.m."