My only definitive piece of advice is that you really want to create a system that forces owners to have to drop good
players each of the first three years. If you don't, everyone will lock up their top 6-8 players for 3-4 years. As a result, the market will be dry for 2-3 years, then it will suddenly have an influx of good players that were signed when you created the league.
What I did to start my league was to hold a draft. Contracts were based on where you drafted the player. The first person a team took was their franchise player. The second person was put in the last year of a five-year deal. The third person was put in the last year of a four-year deal. The fourth person taken was put in the third year of a four-year deal. The rest of the draft staggered down from there: 3/3, 2/3, 2/2, 1/2, and then 1/1 for the remainder of the draft.
We allow one franchise player and extensions up to the fifth year, so of the players taken first and second for each team, only one could be retained at the end of the year. The following season, the players taken in the third round would probably end up being dropped, and so forth down the line. In that way, I sort of "seeded" future auctions by making it hard for owners to keep players they drafted early (or the good ones).
This system works for us because we base our cap on the total years of the contract. So that five-year deal costs five years against the cap, for instance. If you use a salary cap, I suggest a combination of the staggered contracts and a rising cost each of the years under contract structured in a manner that would make it prohibitive to keep one player for a long time.
Remember: Much of the fun of fantasy baseball is in the pre-season drafts/auctions. If there are no good players to be drafted/signed, it lessens the enjoyment of the league.