Everyone has their own idea on how to free a stuck piston, so I will give mine. I hope it will be of help to someone. This method has been very successful for me.
When you bring your engine home remove the head. Fill cylinder with penatrating oil and forget it for two to three months or more.
When you think the oil has done as much as it can, you are ready to go to work.
First cut a 1/4-inch metal plate that will fit just inside the bore. This puts pressure evenly on the piston when force is applied.
Next find a piece of wood that will almost fill up the bore; oak works best.
Now you have a choice. Either fill the hopper with scalding water or put in some fuel oil and set on fire. The purpose of this is to expand the cylinder enough to loosen the piston. In either case have plate and wood in the bore and a heavy sledge ready.
Now hit the wood as hard as possible. If you have no results feel the inside of the piston if possible. If it is warm, drain hopper, let cool and try again.
It may take several attempts to get the piston out. I have always had good luck with this method and that's what you want - a piston in one piece, isn't it?