Why not let the Italians gain land? Why not make Bosnian or Serbian puppet states instead?
Short answers?
Longer answers:
1.When Yugoslavia was quickly defeated in 1941. (after a coup that overthrew a pro-german regime), the Nazis didn't want to just create another puppet Yugoslavia, knowing about the internal instability of a multi-ethnic kingdom with 3 religions, but rather expand the existing form of Banovina Hrvatska, a Croatian quasi-federal unit established as a part of Kingdom of Yugoslavia in 1939. Croatia was prior to WW1 in the German sphere for centuries, being a part of the Habsburg Monarchy and later Austro-Hungarian Empire, while Bosnia and Serbia weren't.
To accomplish that they offered Vladko Maček, the leader of the ruling Croatian Peasant Party, reigns over Banovina Hrvatska and Bosnia as their ally which would give more legitimacy to the move, which he as a democrat declined.
Germany's ally Italy then took over because of the Ustaše movement. It was a radical militant wing of a hardline-right Croatian Rights Party that was banned in 1924. and then emigrated to Italy where they were welcomed and prepared by the fascist regime. They, along with their leader Ante Pavelić, came back and quickly proclaimed the Independent State of Croatia with Italy as their sponsor and Ustaše as a copy of the SS units. And that connection to Italy brings us to the second question.
WW2 in Croatia was for all intents and purposes a civil war within a regional conflict within a world war and is probably the most complex period in modern European history - we didn't even scratch the surface with this little post.
Serbia on the other hand had no clear ruler since the king fled to England and the Nazis decided to put general Milan Nedić and his group of collaborators in charge, forming the so called "National Salvation Government" which had reduced territory after Hungary and Bulgaria annexed parts of it. It was by all accounts a puppet Serbian state.
Hope this helps clear stuff out for you.