I think Norwegian guy already explained diferrences between -고 좋겠다 and -으면 좋겠다. So I will answer you secend question.
-으면 좋겠다 is 'It will be better if something happen right now'
-았/었/였으면 좋겠다 meaning is same as -으면 좋겠다. However, compare to -으면 좋겠다, you hope it sincerely.
Let's say -으면 좋겠다 is you wish it 50:50 so you aren't upset if it's not happend. But -았/었/였으면 좋겠다 is more than 80%. You desire earnestly something is happend and in case it doesn't happen you will be frustrated.
Ex) 비가 오면 좋겠다 it will be good if it rains but you don't care much.
비가 왔으면 좋겠다 You wish it eagerly because people suffer drought damage.
To be honest, I can't not explain your second question properly. sorry :(