I have added two new forms to your DB; 'fSuppliersNew' and 'sfPersonNew'.
This pair of forms simplifies the task you want, but it still lacks the means to add a new person when creating a new supplier. I'm struggling to understand your business model, as you appear to have a one-to-one relationship between supplier and person. My expectation for this kind of relationship is many-to-many; i.e. a supplier can have many people and a person can belong to a supplier, a customer or an employee. In my thinking, I would have pointers from person to supplier/customer/employee, rather than the other way around as in your model.
I found you code very hard to understand. I strongly recommend the use of comments, because you will find you don't understand it yourself in six months!
The key thing I did was to bind the forms to their tables. By this, I mean the Form RecordSource has the table name and the form controls are then bound to individual fields in the table.
The link between parent and child froms is the PersonID field (the foreign key in the parent and primary key in the child). If you create a new supplier record, you will get an error when entering the subform - this is because the PersonID is null at this point. As there is no related person at this point, it's not straight-forward to add the person record here (but no impossible). I played around with a few methods to create a related person, but none of my techniques were satisfactory. If another member can solve this easily, I'd love to see their solution!
I placed record selectors in the form footer for the parent and used a common handler for the Click event on each. The individual control passes a byte value to the function (values match acFirst, acNext etc.) which determines which action is taken. I added code to disable the 'Previous' button when the first record is encountered (but this is not robust).
There is very little code in these forms; much of what you coded is handled automatically within bound forms. There are some functions which are not handled from your code, but I didn't attempt to replicate them as I didn't understand the purpose.
I have changed this version to use overlapping windows and set fSupplierNew to open when the DB opens.
Anyway, have a look at this and see where it takes you.