Tu formulario original probablemente es la opción más facil. InfoPath crea el formulario basado en tu lista en SharePoint, con todo ya listo.
Si creas un formulario customizado, entonces necesitarás buscar otra forma de enviar los dados a Sharepoint.
Puedes crear una conexion que envie los dados a un Sharepoint form library.
Puedes utilizar codigo para enviar los dados a una lista de Sharepoint (o utilizar qRules).
En fin, quizás la pregunta debe ser, porque tu formulario original no funciona? Según lo que me haz explicado, me parece que el formulario original, creado por InfoPath basado en tu lista, debe ser la solución más simple.