You have two problems. The first is that VirtualMethodInterceptor only works when creating a new instance. When you think about the implementation, that makes sense - the way the interception is hooked up is to dynamically generate a subclass of the type
out from under you.
You can do interception on an existing instance if you use one of the other two interceptors - TransparentProxy or Interface. Those interceptors use a separate proxy object which run the behaviors before calling your actual object. In that case, you will
need to capture the return value:
bankAccount = container.BuildUp(bankAccount.GetType(), bankAccount);
so that you're now calling the proxy instead of the real object.
I realize it's confusing, but there are a lot of tradeoffs here. This is why we have different interceptors; because there's no one technique that guarantees you can intercept everything all the time in all circumstances.
Anyway, I hope that helps.