Using permalinks with parameters

id is already used by WordPress, it’s a query variable and a reserved name. If you put ?id=5 on the end of a URL, you’re asking for the post with ID 5.

Instead, have you considered using a person post type? This would give you an archive, add/edit screen, admin listings, templates, individual person templates, URL paths, etc all for free No need to create a page and a page template, just use single-person.php and archive-person.php