Preheat oven to 350°F. Place potatoes in a large saucepan and add enough water to cover. Add a quarter teaspoon of salt. Boil until potatoes are slightly tender; do not overcook. Drain and set aside.
In a skillet, heat butter and add onions. Cook, stirring until onions are caramelized. Add garlic and cook for one minute.
In a casserole dish, make two layers by alternating potatoes, onions, swiss and goat cheeses, green onions, parsley, remaining salt, and pepper. Pour cream over ingredients. Cover with foil, and bake for 30 minutes. Uncover and bake for an additional 10 minutes. Allow to cool slightly before serving.