Tenías razón la segunda vez.
Debería tener siempre seguido de un participio pasado , una de las formas básicas de los verbos.
De http://www.ecenglish.com/learnenglish/lessons/should-have-past-participle :
Usamos should have + participio pasado para hablar de cosas de las que nos arrepentimos.
Me mojé mucho caminando a casa anoche, debería haberme llevado un paraguas.
La oradora no tomó un paraguas cuando salió anoche, así que se mojó. Ella lamenta no haber tomado su paraguas.
Lamentar (verbo / sustantivo) es sentir pena por algo que sucedió o no sucedió en el pasado.
Debería haber llamado pronto.
Deberías haber hablado conmigo antes de decidir.
El participio pasado de come también es come .
De http://www.usingenglish.com/reference/irregular-verbs/come.html :
Conjugación de «To Come»
Forma base: Ven
Pasado simple: Llegó
Participio Pasado: Come
Singular en tercera persona: Comes
Participio presente / Gerundio: Coming
«Deberías haber venido a la fiesta» es correcto. Dado que el «debería tener» ya está colocando la declaración en tiempo pasado.
«Debería tener» requiere el participio del verbo («venir») en lugar del tiempo pasado («vino»).
«Deberías haber venido a la fiesta» es correcto. Frases como «debería tener» , «podría tener» y «would have» siempre sigue con un participio pasado, no pasado.
Para aclarar su confusión, permítame informarle que «come» puede parecer presente pero sí, también es participio pasado de sí mismo.
Eche un vistazo a algunos participios pasados comunes aquí.
«Deberías haber venido a la fiesta de anoche».
es gramaticalmente correcto. Sin embargo, si ya no estás en el lugar de la fiesta entonces, lógicamente, creo que sería más exacto decir:
«Deberías haber ido a la fiesta de anoche».