Your data will not be a regular square grid both in lat,lon and in projected coordinates: it's either in one or the other. Since you say the cells are 25 square kilometers, it sounds like the grid makes sense only in projected coordinates.
Note that square kilometers measure area, not length. Either your cells are 25 kilometers (not squared) on a side (which would give them areas of 625 square kilometers and lengths of 25,000 meters), or else they are sqrt(25,000,000 square meters) = 5000 meters on a side. The cellsize must be the common side length of each square cell (in meters, not kilometers), not the cell area.
There is another subtlety: the lower left corner is usually not the coordinates of the lower left point in the grid; it's the coordinates of the lower left corner of the cell in which the lower left grid point is the center. Thus, to compute (xllcorner, yllcorner), you have to subtract half the cellsize from each of the coordinates of the lower left grid point.
A reliable way to create grid header files is to create a simple grid (such as a constant grid or random grid) having exactly the desired origin, extent, and cellsize. Export that grid in ASCII format. Throw its data away--keep the header file: it contains exactly what you need, formatted in a way acceptable to your software. This will reveal the relationships between the contents of the header and the values you specified when making the grid.