Arduino infrared problem with universal remote
A simple way to debug would be to use an oscilloscpe to compare the difference between the real remote and your Arduino signal.

Either use an IR receiver and scope the results of both Arduino and remote with the same data sent. Or open the remote and scope the lines directly and compare with the Arduino data driving lines. Then adjust your code to make the two identical. As @mpflaga says, the timing between sends is a likely suspect.