Child themes are necessary if you’ll be doing a lot of customization outside of the built in options.
For example, if you’ll be overwriting template files, or adding custom page templates etc..
For adding CSS and PHP, these articles should help:
As for migration being complicated, it totally depends on your current theme. You will most likely have to re-build the visual aspects of your website again, but all of your content etc.. will remain as long as your previous theme used best WordPress practices.
Our knowledge base has information on all of the add-ons, and we have video tutorials on the way as well: https://generatepress.com/knowledgebase/
Hope this helps 🙂