I would download gimp (free at gimp.org) and do this type of project on my computer.
You start off with a blank file at a specific size, say 20x30 for a huge poster. Make the pixels per inch (PPI) 300. Then just open each photo, edit it as you see fit (brightness, crop, etc...) and then copy the image and paste it into your blank 20x30 file. Each image that you import into the 20x30 will be on a separate layer. This is critical because the layers will allow you to move and resize photos individually from the others.
You're going to want to watch a few videos on how to export photos, edit them, change sizes all in Gimp. Youtube will have what you need.
Once you have all of the photos arranged, you can add text within gimp too (on a new layer). You should save the file every few minutes just in case something happens, you don't want to loose your work. Once you're finished, save the file. Then you'll need to flatten the image into a single layer (youtube will show you how). You will want to save it as a jpeg using the s-RGB color space (youtube once again). Using the s-RGB color space means setting the range of colors to a specific pallet. Not doing this step will often lead to bad colors when printed, so don't skip it.
Save the final single-layer image as new file so you have one file that is ready for the printer, and another one that has all of your layers if/when you need to go back and make changes. This is a critical step as well.
Now, just copy the file onto a thumb drive and take it to a printer. Costco is okay and cheap. Places like Bayphoto.com offer higher-end printing and are considered one of the best digital labs in the country.