I'd also like to point out that the system you're working with as presented is radically unstable.
(~C)->A (by the following subproof)
A (suppose for the conditional)
(~C)->A (by the conditional introduction rule, lines 24-27, discharging assumption 1.)
(~C)->(~A) (by the following subproof)
(~A) (suppose for the conditional)
(~C)->(~A) (by the conditional introduction rule, lines 24-27, discharging assumption 1.)
~~C (by lines 35-39, supposed to represent a contradiction)
C (By double negation elimination lines 41-43)
In effect, any arbitrary sentence is a theorem of the system you've proposed. Something doesn't seem right there.
To fix it, you probably need to amend the rule about conditional introduction to be in some sense Relevantly restricted. That is, rather than
you could use an argument skeleton type rule like this:
A -> B
The idea here is that you can discharge
A in this inference, but you need to ensure that the
... here is itself a permissable deductive inference from
B. This would let you keep the cases like
A v ~A without the arbitrariness involved in the current rule.