For finding out when the bot crashed... there are 2 options that I have used before:
1) You can parse the data from the realtime interface with a PC application and get the status bits for the bot.
2) In your program, run a separate thread that keeps changing a Modbus value (say count every second from 0 to 255 and then start over). You can read this from your PLC, when the number stops incrementing, the program stopped.
For programming from PC... you can install VNC on the bot and remotely operate the pendant from your desk.
For putting into a box... with some position scripting in URScript you can take the measurements of the box and compute the relative position movements from a corner of the box position (box origin). That way you can just teach 5 points (the box origin with wrist angle) and then make relative movements from there.