Gibt es da eine Regel oder ist das vielleicht regional verschieden?
Nein, soweit ich weiss, gibt es keine „Regel“ dafür. Regionale Unterschiede gibt es mit Sicherheit aber…
traje bedeutet Anzug/Kostüm und vestido bedeutet Kleid.
Wenn man sich daran hält, ist die Fehlerquote sicher sehr „gering“ 
Ein „vestido“ wird meistens für ein Frauenkleid gebraucht. Es handelt sich aber allgemein um Bekleidung bzw. Bekleidungsteile. Man benutzt auch das konjugierte Verb (vestir bzw. vestirse) , wenn man auf die gesamte Erscheinung hinweisen will: va muy bien vestido.
Ein traje bezieht sich auf die „gesamte Bekleidung“ eines Menschen : Hose,Hemd, Jacke, u.U Schuhe etc. Traje wird z.B für Landestypische Bekleidung gebraucht (Tracht) bzw. für Berufsbekleidungen oder für bestimmte „Ereignisse“ : traje de torero, traje de ceremonia (Uniform), traje de noche, traje de etiqueta.
Das Wort wird auch im Sinne von „Anzug“ bzw. Kostüm gebraucht.
Salu2
cuya
PS: Das Wort ropa wird allgemein für Kleidung benutzt: voy a comprarme ropa nueva, tengo que planchar/lavar mi ropa.