I'm not sure if you still want me to tell you this since it has been a while, but here I go: The List<Money> creates a List object from the information given by getWorld().getObectsAt() and then the <Money> part casts it to Money actors instead of just objects, which was messing you up earlier. Danpost is right though, you can just say:
Money money = (Money) getWorld().getObjectsAt(517, 314, Money.class).get(0);