There's no need to have a variable OpenFlow version for packet-out. That only makes the code more complicated. As it is, this only works for OF 1.0 because of the actions/instructions differences.

Use OF_VERSION_1_3.