昨夜 is always read さくや in modern standard Japanese. I was not aware of the other readings, and you can safely forget them. According to monolingual dictionaries, ゆうべ seems to be an obsolete reading used in the past. (Some big dictionaries tend to list rare and/or obsolete readings even native speakers do not know. If you often run into this type of problem, you may want to get a smaller dictionary for learners or native elementary school children.)
ゆうべ is written as 夕べ in kanji (and kana) in modern standard Japanese. It also means "last night", but sounds more colloquial. 夕べ also means "night (event)". ゆんべ is highly dialectal or old, so you should not use it.
昨夜 means "last night" and is relative to today. 前夜 means "the night before" or "eve", and is relative to some "main" day. For example クリスマスの前夜 always refers to the 24th of December regardless of the date of today.