There is a lot going on here.
First you really cannot get someone to stay for a year. All you can do is sign a lease, with a designated time frame. month to month, 6 month, yearly ect. Along with that especially with the longer leases you can add a clause that if they break the lease there will be a fee. You have to check your states lease laws to verify how much, and when and how you can assess this.
Second, how are you screening your tenants?
Do you do background checks? Have them fill out prequalifying applications?
Third is where is your property?
Is your property near a college? Commuter area? How is the neighborhood? Have you checked if your rent is too high? or too low? Is there anything that would make a prospective tenant want to move after a while? I know if it were near a baseball field with lights shining in my home during the summer, and I didn't know it when I moved in It may be a factor of me wanting to move. It wouldn't hurt to ask why they are moving.
Of course we would all want seamless turnovers, but its not always possible. The property needs to be cleaned, repairs made if needed.
I don't like showing the property if there are tenants, drive bys only, with the words do not disturb the tenants on any ads. I would think it should not take longer than a week to paint if needed, clean, shampoo carpets, bug spray, landscaping if needed, to turn it around. Longer if there are damages or time to replace carpet or appliances ect.
I also have learned so much! I have some bad habits that I am resolving and treating this more like a business. The biggest thing is ive learned that I am a Landlord first they are the Tenant. I can be friendly and I will go out of my way to help if needed, but I try to keep it professional, I am not their mother, or sister. It is a fine line and we have to be aware of it.
I hope to hear how it works out and please keep posting!!