Such "how do I write an app" questions rarely get useful answers. I suggest breaking that rather large problem down into smaller chunks, such as
- tap on map to add a pin
- store that one pin's location in persistent storage (I recommend NSUserDefaults to start - it's MUCH simpler than Core Data)
- load the pin from persistent storage on app start and display it on the map
If you have specific questions, post detailed error message / description, code that reproduces the problem, and details of what troubleshooting steps you've taken already. Once you have the "proof of concept" of storing one pin working, then hit the books (figuratively) and start learning about Core Data. It has a steep learning curve. You can substitute the NSUserDefaults piece with Core Data once you have that figured out.
Adding unlimited numbers of pins is the default. MapKit doesn't enforce any limits. You may run into performance problems once you get past a few hundred though, so you'll likely have to implement clustering at some point. Apple has sample code for that. But again, breaking it down into smaller pieces, ignore that for now until you have the basics working.