I think that is a simple solution, you can add a Cooldown & A Limit for any Age. I explain…
Limit System
You start has a Baby, and you have to live some minutes has a baby. Also, you can do some missions (Example: Collect the Toys to Gain +100 Live Points. Play with the Teddy Bear to Gain +250 Live Points) and you will have to do that until you get hmmm… Maybe 1000 Live Points?
So, when you get 1000 Live Points, you will be able to be a Kid, and, has a kid, you will have to do some missions like the Baby, until you get 2.5k Live Points? And, another time, when you get the points, you can “evolve” to the next Age.
Ok, now we have a System to “Evolve”, so, when you have reach a new age, you will Save a Value, that says that the player had this age. So, if the player is a Kid or Teen but he want to be another time a baby, he will be able to become a baby.
The Adult will be the Max. “Rank”, and if you have been it, you will be able to choose any Age that you want.
Cooldown System
To prevent this type of thing that you said, you can make a Cooldown System where, if you change of age, then, you won’t be able to have the previous age for 2 - 3 Minutes
About the Jobs
To prevent also the leave and join from a job, make something like, you have to literally, study to have a Job, so when you become an Adult, you will have an Extra Value, that will be the “Intelligence”, and depending of what did you do, if you studied has a Teen, you will be able to get better jobs than if you worked. And this Value will restart everytime you leave from the Adult Age.