I'm no expert on FD, but it seems to me that your stepping approach is the problem. Typically, FD methods can handle boundary-value problems in a very straight-forward manner: use the discretized derivatives you have there to set up a large system of simultaneous equations. That's the key word:simultaneous. With your method, you're bootstrapping yourself up to get more and more values as you go along. Then, when you get to the end, you have a hard time matching up the final boundary conditions (although, if you have a fast enough computer, you could iterate through your scheme using a shooting method.) Think of a grid, x in one direction, and t in the other. The functions V and I are going to need to satisfy a certain system. You'll need to set up that system (the hard part), and then hand it over to a computer to solve.

Like I said, I'm no expert, and we will very quickly exhaust my expertise in the subject. But maybe this will give you some ideas.